工程檔案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