Cocos2d-x 吞沒事件:setSwallowTouches


使用:給觸摸監聽函數設置吞沒事件,使得觸摸上面的層的時候事件不會向下傳遞

方式:listener->setSwallowTouches(true),不向下觸摸

簡單點來說,比如有兩個sprite ,A 和 B,A在上B在下(位置重疊),觸摸A的時候,B不會受到影響

 

 

今天在一個場景上添加布景層layer的時候,想要設置觸摸吞噬
本以為this->setTouchEnable(true);this->setSwallowsTouches(true);兩句話就搞定了,卻一直得不到想要的效果。
后來發現僅僅設置可觸摸是不行的,需要給他設置觸摸監聽事件,用設置的監聽listener來調用設置觸摸吞噬函數。注意:需要實現一個touchBegan,否則vs會報錯)


//場景初始函數init()內

auto listener1 = EventListenerTouchOneByOne::create();
listener1->onTouchBegan = CC_CALLBACK_2(AboutLayer::onTouchBegan, this);
listener1->setSwallowTouches(true);//設置吞噬按鈕
//給Layer添加觸摸事件
auto dispatcher = Director::getInstance()->getEventDispatcher();
dispatcher->addEventListenerWithSceneGraphPriority(listener1, this);

 


免責聲明!

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



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