PuTsangTo-单撸游戏开发02 测试场景与单轴移动
且不说立项与设计阶段的工作量,一个完整的游戏在开发阶段设计的职责范围也是很广,还有个大问题就是PuTsangTo项目也是本人在边学边做,截止目前还是满满的无从下手的感觉,一方面是技能与经验不足,另一方面就是要做的事情实在很多,虽然大致有哪些多少都有点数,但从感觉从那一部分先做都不太爽。
静下心来思考所有的工作,要做的主要有这么几点:
1. 美术资源。具体到2d游戏那就是贴图资源,动画切片资源,还有就是骨骼动画之类的。不是学美术出身,所以决定这方面一切从简,直到游戏初型基本呈现,再贴上酷炫的图也不迟,前期就无脑用彩色方块代替好了。
2. 音乐资源。比美术资源还没头绪,同样前期就建立一个无声游戏世界,最多给加上简单碰撞音效,其他的等后面再把电音世界大门给敲开。
3. 场景搭建。这个必须要最先完成,毕竟是游戏世界的基础,至少先从测试场景开始。
4. 游戏脚本。这是客户端唯一需要编程的地方了,得配合场景搭建过程一起完成,并尽量为后期的数据分离维护铺好路。
5. 数据分离。最终的目标是要实现联网游戏的,在前期就得多考虑这个问题。
测试场景搭建
Cocos官方对编写代码以外的工作的教程及资源的提供还是很完备的。基本场景的编写看完教程就会了,说白也就是拖Actor到场景里面,给他加上各种组件,配置各种属性,毫无难度也没什么意思,美感完全靠的贴图。笔者这里靠自己一个周末速成的PS伎俩抠了几张贴图,搭出了个超级简单的场景出来:
层级结构是这样的:
可以直接运行,效果就是我们的小白安静的静止在场景里,下一步就先让小白能动起来,并且是最最简单的移动,简单到只能横向单轴移动。
移动需要脚本,所以编写一个脚本move.js,做的事情有下面5件:
1. 在properties里添加一个speed变量代表速度。
2. 在onLoad回调中配置按键监听,监听键盘按键的按下与松开两个事件。并初始化一个direction变量代表方向,值为-1则是向左移动,为1则向右移动,为0则静止。
3. 在监听键盘按下事件的回调中监听键盘的AD键和左右方向键。其中A与左方向键将设置direction变量为-1,D与右方向键将设置direction变量为1。
4. 键盘松开的回调中要做的就是停止移动,最简单的方式就是将AD左右按键送开始都将direction值设为0。
不过仅这么做体验是不够好的,因为按键顺序的情况有三种: A按下A松开B按下B松开、A按下B按下A松开B松开、A按下B按下B松开A松开。
其中第二种情况会发生在左右键快速更换时,左键还未松开,右键就按下了,此时左键如果再松开,前面右键按下时设置的1会有一瞬间被置回0,移动就会卡顿一瞬间。说得可能不太明白,不过实际操作时,左右键交替按,是比较容易有卡顿的感觉的,除非一直保证A按键松开后再按下B按键。
优化的办法就是在按键松开的回调中进行判断,当前的direction的值若与松开的按键匹配则将其置0,否则说明已经有其他按键来支配当前的direction了,什么都不做就可以。
5. 以上按键的监听其实都是围着着一个值在转——direction,但cocos并不认识这个值,所以还得在其提供的update更新回调中使用direction真正的让角色移动。
update回调传入了一个很短的时间值,将其与speed值以及direction值相乘并累加到节点当前的x周位置上,就成功改变节点的位置了。
脚本源码如下:
最终效果即是可以流畅灵活的左右移动。由于笔者玩过比较多的一个叫《冒险岛》的游戏,其移动就是横向不考虑重力与惯性,纵向跳跃才考虑这些,让笔者比较习惯这种操作方式,而不是像超级玛丽那样,横向走个路还刹不住车。所以PuTsangTo的前半段会模仿很多《冒险岛》的玩法元素,这多少也帮助我知道如何下手了。
同时由于笔者主页是做Web开发,一边不务正业写游戏过程中,也会认真把这个游戏的官网啊乱七八糟的给构建出来,但下一步还是先把角色的基本动作,包括任何游戏都必须要有的一些能力给完善好。下一期就把角色跳跃包括平台的碰撞给完成好了。
PuTsangTo-单撸游戏开发02 测试场景与单轴移动的更多相关文章
- PuTsangTo-单撸游戏开发01 Flag与计划
先立下flag,至少1年之内坚持并2年之内完成自己的一个梦想--游戏开发. 没有参加培训也不打算参加培训,就纯靠业余时间自学并用自己的思路完成一整套游戏体系.做出此决心时也已经做好准备烂尾了,但是有种 ...
- PuTsangTo-单撸游戏开发03 碰撞与跳跃瑕疵版
继续上一部分,游戏的定位是横版平台动作类游戏,所以得有跳跃动作,首先想到的就是物理引擎,不过在2D游戏里,仅为了角色的跳跃而引入物理引擎,目前想来有些不至于,仅使用cocos默认带有的碰撞系统也足够了 ...
- cocos2dx 游戏开发中常用场景切换方式以及特性
runWithScene(CCScene* scene):启动游戏,并运行scene 场景.这个方法在主程序启动时第一次启动主场景时调用. replaceScene(CCScene* scene) ...
- [Unity3D]Unity3D游戏开发3D选择场景中的对象,并显示轮廓效果强化版
大家好,我是秦培,欢迎关注我的博客,我的博客地址blog.csdn.net/qinyuanpei. 在上一篇文章中,我们通过自己定义着色器实现了一个简单的在3D游戏中选取.显示物体轮廓的实例. 在文章 ...
- PuTsangTo-单撸游戏开发04 给角色添加基本动画
一. 跳跃与移动的优化与完善 先给上一次的内容做一次补救,也就是上一次中还留存的,由于键盘按键事件的第一次回调与后续回调之间会间隔个小半秒带来的跳跃落地后动作延迟的情况. 最终的键盘按下回调的处理代码 ...
- 《Lua游戏开发实践指南》读后感
书籍地址:http://book.douban.com/subject/20392269/ 一句话点评该书:想用Lua作游戏脚本开发的同学值得一读! (一)本书特点 市面专门讲Lua的中文书籍非常少, ...
- 【Cocos2d-X游戏实战开发】捕鱼达人之单例对象的设计(二)
本系列学习教程使用的是cocos2d-x-2.1.4(最新版为cocos2d-x-2.1.5) 博主发现前两个系列的学习教程被严重抄袭,在这里呼吁大家请尊重开发者的劳动成果, 转载的时候请务必注 ...
- 喵的Unity游戏开发之路 - 多场景:场景加载
如果丢失格式.图片或视频,请查看原文:https://mp.weixin.qq.com/s/RDVMg6l41uc2IHBsscc0cQ 很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始 ...
- Android游戏开发实践(1)之NDK与JNI开发02
Android游戏开发实践(1)之NDK与JNI开发02 承接上篇Android游戏开发实践(1)之NDK与JNI开发01分享完JNI的基础和简要开发流程之后,再来分享下在Android环境下的JNI ...
随机推荐
- Android事件传递机制详解及最新源码分析——View篇
摘要: 版权声明:本文出自汪磊的博客,转载请务必注明出处. 对于安卓事件传递机制相信绝大部分开发者都听说过或者了解过,也是面试中最常问的问题之一.但是真正能从源码角度理解具体事件传递流程的相信并不多, ...
- 更符合面向对象的数据库操作方式-OrmLite
1. jar包下载 下载地址:http://ormlite.com/releases/,一般用core和android包即可. 如果使用的是android studio,也可以直接通过module s ...
- 2_linux 常用基本命令
相信当你看到此帖子时,你已不再是当年那个颓废的你,你一定也在追梦的路上奔跑,那么请留下你的“梦”,让我们用心去交流,好吗? 废话不多说,直接说正事! 一.查看磁盘分区 1.fdisk -l 查看磁盘 ...
- 转每天一个linux命令(7):mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...
- Jmeter常用功能详解
嘻嘻,忙碌的一周,马上就到周四了~明天就是周五了,可以去嗨了! 这几天正式成立了一个微信订阅号,旨在免费帮助需要入门软件测试的小白! 各位走过路过的亲,欢迎订阅哦:扫描二维码即可订阅
- java 基础四
1 for循环嵌套 简而言之,就是一个for循环语句里面,还有一个for循环语句. 外层循环,每循环一次,内层循环,循环一周. 示例 package java003; /** * 2017/9/1. ...
- 6.28 Windows Serviece
描述: A 软件,已经注册了一个windows服务并启用,现在需要在服务自己的一个类B里增加一个字段,服务的作用是返回一个该类型B的实例 做法 增加字段,替换服务文件,重新注册服务并开启,但是在A软件 ...
- postman 第3节 API请求和查看响应结果(转)
请求 postman支持很多请求类型,界面左侧可以看到请求类型:get.post.put.patch等,右侧是发送和保存按钮,下方是请求支持的认证方式.信息头.信息体.私有脚本和测试结果.下面我们介绍 ...
- Spring-MVC请求参数值和向页面传值
读取请求参数值 方式一:通过HttpServletRequest req做参数 DispatcherServlet在调用处理的方法之前,利用Java反射分析方法的结构,通过分析,将req对象传过来 方 ...
- MySQL(九)之数据表的查询详解(SELECT语法)二
上一篇讲了比较简单的单表查询以及MySQL的组函数,这一篇给大家分享一点比较难得知识了,关于多表查询,子查询,左连接,外连接等等.希望大家能都得到帮助! 在开始之前因为要多表查询,所以搭建好环境: 1 ...