我使用触摸回调制作类似开关的功能,一个场景中添加了一个相机。结果发现每次触摸一下屏幕回调函数会被执行2次,原来没有添加相机的时候是一次。请问怎样做才能让函数只执行一次??初学者,望高手耐心指教
ca = Camera::createPerspective(60,
visibleSize.width / visibleSize.height,
1,
1000);
ca->setPosition3D(_sprite->getPosition3D()+Vec3(0, 0, 600));
this->addChild(ca)
auto listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan, this);
listener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded, this);
listener->setSwallowTouches(true);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
return true;
}
bool HelloWorld::onTouchBegan(Touch* touches, Event *unused_event)
{
if (_ON)
{
log(“11”);
}
else
{
log(“22”);
}
_ON = !_ON;
log("33");
return false;
}
最后结果
11
33
22
33
