3

でいくつかのゲームを作成しようとしており、などcocos2d-xのカスタム イベントを定義しようとしています。それで、誰か私にこれについてのヒントを教えてください。ありがとう。on_game_starton_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 に答える