天天看点

Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主

工程文件TouchesTest.h和TouchesTest.cpp

相关素材文件

Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主
Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主

事件驱动同样适用于cocos2d-x引擎,cocos2d-x的触屏事件可分为单点和多点触屏。

一般用到情况有:

Layer统一接受触屏消息,然后由程序根据需要分发给不同位置的sprite;

自定义可接收触屏事件的sprite。

Layer层实现触屏事件

1.开启触屏事件

在Layer层初始化的时候设置

2.重写(覆盖)父类CCLayer的方法

以下为CCLayer类的CCCtouch相关虚方法

Begin:触屏事件开始

Ended:触屏事件结束

Moved:触屏拖动

根据具体情况,改写自己需要的触屏事件方法。

选择其中的ccTouchesEnded方法,目的实现Sprite射击开火。

其中包含方法Role2Fire,实现动画效果

Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主
Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主

Role2Fire

注意

坐标系转换,设备中是以左上角为坐标系原点,cococs2d-x以左下角为坐标系原点,所以,在获取坐标点后,需要转换坐标系。

运行后,触摸屏幕后,Sprite会向着该触点发射开火。

Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主
Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主

Sprite自定义触屏事件

同样,在CCLayer上实现Touch的效果,使用Sprite自定义触屏事件也可。

1. 创建一个类继承CCSprite和Touch相关接口

要使sprite实现自定义touch必须继承相关的touch接口。

Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主

CCTouchDelegate下包含CCTargetedTouchDelegate和CCStandardTouchDelegate委托

2.CCTouch方法中处理事件函数

其中,TouchesRole2Running实现动画,触摸屏幕后,Sprite会跑动到触点位置。

运行后,触摸屏幕后,Sprite会跑动到触点位置。

Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主
Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主

Lyaer层和Sprite层实现触摸屏事件,各有各的优点,都可实现触摸效果。

完整代码

Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主
Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主

TouchesTest.h

Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主
Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主

TouchesTest.cpp