App Delegate からシーンの変化を検出するにはどうすればよいですか? cocos2D のメニュー システムを使用して、2 番目のページにリンクする 1 つのボタンを持つメイン メニューがあります。
ユーザーがボタンを押すと、MenuScene から GameScene にシーンが遷移します。
シーンの遷移時にコードを実行できるように、アプリのデリゲートからこの遷移を検出することは可能ですか?
ありがとうございました!
App Delegate からシーンの変化を検出するにはどうすればよいですか? cocos2D のメニュー システムを使用して、2 番目のページにリンクする 1 つのボタンを持つメイン メニューがあります。
ユーザーがボタンを押すと、MenuScene から GameScene にシーンが遷移します。
シーンの遷移時にコードを実行できるように、アプリのデリゲートからこの遷移を検出することは可能ですか?
ありがとうございました!
通知を使用して、シーンが遷移したことを通知できます。appdelegate のどこかで、通知をリッスンします。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomethingAfterTransition) name:@"sceneTransitioned" object:nil];
GameScene の onEnterTransitionDidFinish メソッドで、次の通知を投稿できます。
[[NSNotificationCenter defaultCenter] postNotificationName:@"sceneTransitioned" object:nil];
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;
解決策は、シーンを変更するたびに通知を投稿することです。
アプリ デリゲートはその通知に登録し、シーンが変更されるたびに通知を受け取る必要があります。