今天在一个场景上添加布景层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);
本以为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);