在之前的课程中介绍了通过menu实现玩家的交互,而大部分游戏中都是通过触摸和滑屏实现交互,本节课将对这两个事件触发进行讲解
触摸事件
cocos2dx3.0之后,触摸事件变化比较大,之前使用的setTouchEnabled和CCTouchesBegan都已经不再使用了。
而是使用创建事件监听器的方法,首先定义一个事件监听器,比如触摸事件监听器EventListenerTouchOneByOne,定义该事件监听的onTouchBegan方法监听TowerDefenseScene layer的onTouchBegan方法,onTouchEnded方法监听TowerDefenseScene layer的onTouchEnded方法,onTouchMoved方法监听TowerDefenseScene layer的onTouchMoved方法,然后将该事件监听器通过addEventListenerWithSceneGraphPriority方法加入TowerDefenseScene layer的getEventDispatcher。
然后重载TowerDefenseScene layer的onTouchBegan、onTouchMoved、onTouchEnded方法,重载的时候需要先在.h文件中声明,然后再重载,比如本次demo中就是在TowerDefenseScene方法中创建一个精灵,然后通过onTouchBegan传入的参数touch的getLocation方法得到触摸的位置,然后根据触摸的位置,将精灵加入TowerDefenseScene layer,然后在TowerDefenseScene方法中根据传入的touch参数得到触摸位置,设置sprite的位置,进行拖动操作,最后在onTouchEnded方法中,实例化一个Animation,然后创建2个SpriteFrame,并将其加入Animation,设置Animation的帧间隔事件和循环次数(-1为无限循环),然后实例化一个动作的子类Animate,将Animation做为参数传入Animate,然后通过sprite的runAction函数执行Animate动作。
笔者制作网站的目的,主要是借用自己之前的知识背景(Android App开发和图形学知识),将自己学习笔记拿出来,和大家一起进行交流,毕竟每个人的知识体系不同,有交流才会有提高,所以欢迎大家通过各种方式和我联系。
网址:www.geekfaner.com
youku教学视频:http://i.youku.com/geekfaner
“百度传课”教学视频(高清版_推荐):http://www.chuanke.com/s2588605.html