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...