天天看點

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