6

2 つのレベル間の遷移を設定しようとしています (1 つのレベルが完了したら、cocos2d の滑らかな遷移の 1 つを使用して次のレベルに遷移します)。私の GameLayer 実装では、プレイフィールドを構築するために [self buildLevel: 3] のようなことを行うメソッドをセットアップしています。新しい GameLayer または Layer ノード、または GameScene または Scene ノードをインスタンス化して、次のようなことができるようにするには、何をする必要がありますか?

GameLayer * nextLevelLayer;

[nextLevelLayer buildLevel: 4];

... レベル 3 とレベル 4 の間の移行を行う

おそらく、Objective C の完全な誤解でコードをレイアウトしました。init コードで新しい GameLayer をセットアップできないと仮定しています。GameLayer の init コードにプレイフィールド セットアップ コードが多すぎると思いますが、通常はどのように処理しますか? ゲームのメイン ループのセレクターをスケジュールする前にフラグを設定しますか?フラグが設定されている場合は、ゲームのメイン ループでレベルを設定しますか?それとももっと良い方法がありますか?

前もって感謝します!

4

1 に答える 1

14

気にするかもしれない人のために、これが私がやったことです:

GameScene * gs = [GameScene node];
[[Director sharedDirector] runScene: gs];
[[Director sharedDirector] replaceScene: [ShrinkGrowTransition transitionWithDuration:0.5 scene: gs]];

これは、レベルが完了した後に GameLayer 実装内で行われました。

于 2008-12-11T15:02:31.753 に答える