3

我正在尝试用 编写一些游戏cocos2d-x,并且我正在尝试定义一些自定义事件on_game_start,例如on_game_end等。我搜索了论坛并在网上搜索,似乎没有太多提及。那么,有人请给我一些提示吗?谢谢。

4

2 回答 2

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);
}
于 2013-05-27T04:40:34.983 回答
0

我认为您的“自定义事件”等于“进入/退出游戏场景时的函数调用”。因此,您可以编写一个初始化函数void on_game_start(),并将其添加到场景的函数onEnterTransitionDidFinish()中,该函数由引擎自动调用。另外你需要实现你自己的继承自的场景类CCScene,不要忘记onEnterTransitionDidFinish()在你自己的子类中实现这个虚函数。

于 2013-05-24T05:09:06.620 回答