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