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);