跳入新版本的坑,发现有不少和旧版本略有不同的地方,这次遇到的问题代码是这样的:
void HelloWorld::onEnter()
{
Layer::onEnter();
auto contactListener = EventListenerPhysicsContact::create();
contactListener->onContactBegin = CC_CALLBACK_1(HelloWorld::onContactBegin, this);
auto dispatcher = Director::getInstance()->getEventDispatcher();
dispatcher->addEventListenerWithSceneGraphPriority(contactListener, this);
}
bool HelloWorld::onContactBegin(PhysicsContact &contact)
{
if(ball->getPositionY() <= 0.0f)
{
auto gameOverScene = GameOverScene::create();
Director::getInstance()->replaceScene(gameOverScene);
}
return true;
}
编译链接一切良好,简单调试也看到事件派发器确实有将侦听器添入,问题就在于运行时始终没有任何事件发生。。。可能只是个简单的问题,不过我还是暂时没找到症结所在