在CocosCreator中触摸监听事件(其实所有的内置事件都是)是加在节点(cc.Node)上,当该节点被操作,就会触发该事件的回调函数,这时我们就可以在回调函数里面做相应的处理,以此来完成一次界面交互。
那么本游戏应该把触摸响应加到什么节点上呢?
首先,我们这个游戏是需要全屏响应触摸事件的,那么我们需要找到一个覆盖整个界面的节点,很显然Canvas节点就符合要求。
创建一个BirdControl脚本,并且挂载到Bird节点,用来专门控制小鸟的游戏逻辑。
如上图所示,把脚本挂载好之后,就双击BirdControl脚本去vscode里面编辑代码。
如上图所示代码:
第一块代码,是定义了一个速度变量用来表示小鸟在Y轴方向的速度,正值表示向上飞,负值表示下落过程。
第二块代码,onLoad函数是CocosCreator提供的生命周期回调函数其中一个,在脚本所挂节点首次被激活的时候回触发该回调函数,一般用来做一些初始化相关操作。第24行代码就是给Canvas节点添加触摸事件响应。
注意参数的意义:
cc.Node.EventType.TOUCH_START从名字上大概就可以看出,这个事件是触摸开始的时候。
this.onTouchStart是我们自定义的回调函数。
第三个参数 this,用于绑定响应函数的调用者。这个参数很重要,一定要写上。
第三块代码,在update函数里面,让速度speed每帧减少0.05,这样是在模拟小鸟受重力影响做向上的匀减速运动或者向下的均加速运动。
第四块代码,onTouchStart函数是我们自定义的触摸回调函数,当我们鼠标点击游戏区域的时候就会触发这个函数,每次触发这个函数,我们给小鸟一个向上的速度,速度值为2。
保存代码,回到CocosCreator保存下场景运行,然后用鼠标在游戏区域点击,就会发现每点击一下,小鸟就会向上飞一段距离。
为了效果逼真一点,我们可以在小鸟向上飞的时候,把小鸟向上倾斜一点角度,向下坠落的时候,向下倾斜一个角度。
实现很简单,代码如下:
这段代码就是实现了根据小鸟的当前速度改变小鸟的倾斜角度,最大倾斜角度为30度。
效果图如下: