cocos2d x註冊touch事件

2021-06-16 23:23:19 字數 1289 閱讀 4938

cocos2d-x註冊touch事件

之前在寫cocos2d專案時,一般註冊touch事件都是在init()方法中或onenter()方法中,例如:

bool

gamelayer::init()

ccdirector::shareddirector()->gettouchdispatcher()->addtargeteddelegate(this, 0, true);

returntrue;}或

void

gamelayer::onenter()

然後在onexit();方法中取消touch事件的註冊,像

void

gamelayer::onexit()

其實,在cocos2d的api中還有比這簡便的方法來節省**和增強**的閱讀性,在繼承cclayer時,父類有乙個

registerwithtouchdispatcher

()方法,在

onenter方法中被呼叫,所以在我們繼承父類時,重寫

registerwithtouchdispatcher

()方法即可,在

registerwithtouchdispatcher

()方法中註冊touch事件

void

gamelayer::registerwithtouchdispatcher()

這樣在你退出的時候不用再去寫取消touch事件的方法,父類會在onexit方法中幫你登出。

當然這樣寫還要注意的是,必須現在init方法中開啟觸控事件,即

this

->

settouchenabled

(true

);,否則是不會去自動執行registerwithtouchdispatcher()方法裡面的**的,

this

->

settouchenabled

(true

);方法預設是開啟多點觸控事件,上面寫的是註冊單點的方法,註冊多點的方法是

ccdirector

::shareddirector

()->

gettouchdispatcher

()->

addstandarddelegate

(this, 0

);

好了,這裡是我的理解,不對的地方還請指出,大家一起進步!!!

深入cocos2d x中的touch事件

在文章cocos2d x中處理touch事件中簡單討論過怎樣處理touch事件,那麼今天來深入了解下cocos2d x中是怎樣分發touch事件的。我們最先來看到cctouchdispatcher這個類,這個類在cocos2d x中是管理和分發touch事件,這個類繼承於egltouchdelega...

cocos2d x中關於touch事件的響應

一 touch 事件響應分為單點觸控響應和多點觸控響應。單點觸控響應需要過載的方法 virtual boolcctouchbegan cctouch ptouch,ccevent pevent virtual voidcctouchmoved cctouch ptouch,ccevent peven...

cocos2d x 資源集合

官網 主席子龍山人 archive 2011 08 08 2131019.html kmyhy的專欄 老g的小屋 cocos2d xtouch事件cocos2d 事件冒泡規律 和 ccmenu一直響應事件的解決辦法 swallow touches how to setmultipletouchena...