0

App Delegate からシーンの変化を検出するにはどうすればよいですか? cocos2D のメニュー システムを使用して、2 番目のページにリンクする 1 つのボタンを持つメイン メニューがあります。

ユーザーがボタンを押すと、MenuScene から GameScene にシーンが遷移します。

シーンの遷移時にコードを実行できるように、アプリのデリゲートからこの遷移を検出することは可能ですか?

ありがとうございました!

4

3 に答える 3

1

通知を使用して、シーンが遷移したことを通知できます。appdelegate のどこかで、通知をリッスンします。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomethingAfterTransition) name:@"sceneTransitioned" object:nil];

GameScene の onEnterTransitionDidFinish メソッドで、次の通知を投稿できます。

[[NSNotificationCenter defaultCenter] postNotificationName:@"sceneTransitioned" object:nil];
于 2012-12-27T22:14:48.733 に答える
0

CCNodeオブジェクトにすでに組み込まれているコールバックを使用できますか(CCSceneはCCNodeの子孫です)...以下のCCNodeからのコピー&ペーストはバージョン2.0のものですが、メソッドははるかに古いと思います。coco'onSomething'メソッドをオーバーライドする場合は、[super onSomething]を忘れないでください。そうしないと、マイレージが異なります:)

/** Event that is called when the CCNode enters in the 'stage'.
 If the CCNode enters the 'stage' with a transition, this event is called when the transition finishes.
 If you override onEnterTransitionDidFinish, you shall 
 call [super onEnterTransitionDidFinish].
*/

-(void) onEnterTransitionDidFinish;


/** callback that is called every time the CCNode leaves the 'stage'.
 If the CCNode leaves the 'stage' with a transition, this callback is called 
 when the transition starts.
 */
-(void) onExitTransitionDidStart;
于 2012-12-27T23:14:49.770 に答える
0

解決策は、シーンを変更するたびに通知を投稿することです。

アプリ デリゲートはその通知に登録し、シーンが変更されるたびに通知を受け取る必要があります。

于 2012-12-27T22:15:49.137 に答える