使用cocos2dx自定义事件

时间:2013-05-22 23:41:08

标签: cocos2d-x

我正在尝试使用cocos2d-x编写一些游戏,我正在尝试定义一些自定义事件,例如on_game_starton_game_end等。我搜索了论坛并搜索了网络,似乎没有太多提及这一点。所以,有人请给我一些提示吗?感谢。

2 个答案:

答案 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()虚函数。