0

iOS および Cocos2d ( 2.x ) の初心者

OK、メニュー オブジェクトを作成し、新しいシーンごとに呼び出したいと思います。

例:

  • Scene1、メニュー追加
  • Scene2、Scene1と同じメニューを追加

レイヤー自体を初期化するときに CCMenu を初期化する方法を見ただけです。アイテムをビルドしてから、CCMenu などに追加します。

CCMenu を一度初期化してから、たまたま表示しているシーンに追加するにはどうすればよいですか? したがって、Scene1 または Scene2 を表示している場合でも、同じメニューです。

これは理にかなっていますか?

4

1 に答える 1

1

シーンごとに異なるメニューのインスタンスが必要になるため、技術的に言えば、シーンごとに 1 回初期化する必要があります。

しかし、あなたは「一度コードを書いて、そのコードを各シーンで再利用するにはどうすればよいか」と尋ねていると思います。再利用できるある種の CC オブジェクトを作成する必要があります。これは、CCMenu、CCLayer、または目的に最も適したもののサブクラスにすることができます。したがって、次のようなものを試すことができます。

@interface MyMenuLayer : CCLayer {
  CCMenu *myMenu;
}
@end

次に、.m ファイルで、メニューを好きなように設定します。これを Scene1 に含めたい場合:

MyMenuLayer *menu = [MyMenuLayer node];
[self addChild:menu];

Scene2 でもまったく同じコードを使用できます。

(CCLayer の代わりに CCMenu を拡張することもできますが、私は個人的にはメニューの代わりにレイヤーを使用することを好みます。それは個人的な選択の問題です。)

あなたの質問の情報で決定的な答えを出すのは難しいですが、これがあなたが正しい道を歩むきっかけになることを願っています.

于 2012-12-11T05:46:37.793 に答える