Cocos2d x 使用cocos2dx的自定义事件

Cocos2d x 使用cocos2dx的自定义事件,cocos2d-x,Cocos2d X,我试图用cocos2d-x编写一些游戏,我试图定义一些自定义事件,比如游戏开始时的、游戏结束时的,等等。我搜索了论坛并用谷歌搜索了网页,似乎没有太多的提及。有谁能给我一些建议吗?谢谢。我认为您的“自定义事件”等于“进入/退出游戏场景时的函数调用”。因此,您可以编写一个初始化函数,如void on_game\u start(),并将其添加到场景的函数onentertTransitiondFinish(),该函数由引擎自动调用。另外,您还需要实现从CCScene继承的自己的场景类,不要忘记在自己的子

我试图用cocos2d-x编写一些游戏,我试图定义一些自定义事件,比如游戏开始时的
、游戏结束时的
,等等。我搜索了论坛并用谷歌搜索了网页,似乎没有太多的提及。有谁能给我一些建议吗?谢谢。

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

在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);
}

你说的“事件”是什么意思?我说的“事件”是指触摸事件、按键事件等。嗨,Rect,谢谢你的回复。我希望有一些事件,比如在游戏开始时,在敌人被杀死时,等等,可以全局分布,而不是基于场景或节点的回调,比如按键和触摸事件。这不是“回调”,如果你阅读触摸事件的源代码,你可以看到它是由一个类实现的,这个类也可以被视为“委托”在Obj-C中,您可以尝试实现自己的。