cocos2d-x之事件傳遞(onTouchBegan的返回值的作用)


cocos2d-x之事件傳遞(onTouchBegan的返回值的作用)

只有當onTouchBegan的返回值是true時才執行后面的兩個觸摸事件

 

 1 //onTouchBegan表示開始觸摸的事件
 2     listener->onTouchBegan = [](Touch *t, Event *e){
 3         //通過事件e來獲取到當前的事件的目標,然后獲取到目標的邊界區域
 4         //e->getCurrentTarget()->getBoundingBox()
 5         //然后判斷是否包括一個點,就是觸摸點:.containsPoint()
 6         //獲取到觸摸的位置t->getLocation()
 7         //此時事件的目標即node的邊界區域包括了當前的觸摸點,說明所觸摸的就是當前的對象
 8         if (e->getCurrentTarget()->getBoundingBox().containsPoint(t->getLocation())){
 9             log("onTouchBegan!");
10         }
11         
12         
13         //只有當onTouchBegan的返回值是true時才執行后面的兩個觸摸事件
14         //return false;
15         return true;
16     };
17     //觸摸移動事件監聽器,當觸摸移動的時候執行內部代碼
18     listener->onTouchMoved = [](Touch *t, Event *e){
19         log("OnTouchMoved>>");
20     };
21     //觸摸結束事件監聽器,當觸摸結束的時候執行內部代碼
22     listener->onTouchEnded = [](Touch *t, Event *e){
23         log("OnTouchEnd----");
24     };
25     
26     
27     
28     //getEventDispatcher獲取事件的派發器,
29     //addEventListenerWithSceneGraphPriority(事件, 節點);添加事件監聽器
30     Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, label);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM