工程文件TouchesTest.h和TouchesTest.cpp
相关素材文件

事件驱动同样适用于cocos2d-x引擎,cocos2d-x的触屏事件可分为单点和多点触屏。
一般用到情况有:
Layer统一接受触屏消息,然后由程序根据需要分发给不同位置的sprite;
自定义可接收触屏事件的sprite。
Layer层实现触屏事件
1.开启触屏事件
在Layer层初始化的时候设置
2.重写(覆盖)父类CCLayer的方法
以下为CCLayer类的CCCtouch相关虚方法
Begin:触屏事件开始
Ended:触屏事件结束
Moved:触屏拖动
根据具体情况,改写自己需要的触屏事件方法。
选择其中的ccTouchesEnded方法,目的实现Sprite射击开火。
其中包含方法Role2Fire,实现动画效果
Role2Fire
注意
坐标系转换,设备中是以左上角为坐标系原点,cococs2d-x以左下角为坐标系原点,所以,在获取坐标点后,需要转换坐标系。
运行后,触摸屏幕后,Sprite会向着该触点发射开火。
Sprite自定义触屏事件
同样,在CCLayer上实现Touch的效果,使用Sprite自定义触屏事件也可。
1. 创建一个类继承CCSprite和Touch相关接口
要使sprite实现自定义touch必须继承相关的touch接口。
CCTouchDelegate下包含CCTargetedTouchDelegate和CCStandardTouchDelegate委托
2.CCTouch方法中处理事件函数
其中,TouchesRole2Running实现动画,触摸屏幕后,Sprite会跑动到触点位置。
运行后,触摸屏幕后,Sprite会跑动到触点位置。
Lyaer层和Sprite层实现触摸屏事件,各有各的优点,都可实现触摸效果。
完整代码
TouchesTest.h
TouchesTest.cpp