我正在尝试使用cocos2d-x
编写一些游戏,我正在尝试定义一些自定义事件,例如on_game_start
,on_game_end
等。我搜索了论坛并搜索了网络,似乎没有太多提及这一点。所以,有人请给我一些提示吗?感谢。
答案 0 :(得分:1)
似乎cocos2d-x中没有全局事件这样的东西。所以我尝试使用CCNotificationCenter作为替代方案。
以下是我使用的代码:
//Send event.
CCNotificationCenter::sharedNotificationCenter()->postNotification(EMEMY_KILLED_MSG, (CCObject*)data);
//Listen event.
void GameManager::initListener()
{
CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(GameManager::onEnemyKilled), CLICK_TEST_MSG, NULL);
}
//Handling event
void GameManager::onEnemyKilled(CCObject* obj)
{
CCMessageBox("onEnemyKilled", "Title");
//Remove event listener.
CCNotificationCenter::sharedNotificationCenter()->removeObserver(this, EMEMY_KILLED_MSG);
}
答案 1 :(得分:0)
我认为你的“自定义事件”等于“进入/退出游戏场景时的函数调用”。因此,您可以编写类似void on_game_start()
的初始化函数,并将其添加到场景的函数onEnterTransitionDidFinish()
中,该函数由引擎自动调用。你还需要实现自己继承自CCScene
的场景类,不要忘记在你自己的子类中实现这个onEnterTransitionDidFinish()
虚函数。