5

iPhoneのゲーム開発でcocos2dを使っているのですが、LayerとSceneで迷っています。たとえば、私の単純なゲームには、メイン メニュー、ハイスコア、ゲーム ボードなどの「UI ページ」がいくつかあります。

では、すべての「UI ページ」にレイヤーまたはシーンを使用する必要がありますか?その理由は?

4

3 に答える 3

4

SpritesDemo.m/.h を確認すると、レイヤーを使用してから新しいシーンを作成し、レイヤーをアタッチしてからディレクターのシーンを置き換えているようです。

@interface SpriteDemo : Layer
@interface SpriteManual : SpriteDemo

次に、コードは次のことを行います。

-(void)nextCallback:(id)sender {
  Scene *s = [Scene node];
  [s add: [nextAction() node]];
  [[Director sharedDirector] replaceScene s];
}

要するに、あなたの質問に対する答えは「両方」です。レイヤーを使用して実際の「UI ページ」を表しますが、レイヤーを新しいシーンにアタッチし、ディレクターの現在のシーンを置き換えます。

于 2009-04-11T18:08:46.887 に答える
2

それは簡単です:

これらの例には CCLayer があり、新しいシーンを作成してレイヤーをアタッチする +scene メソッドがあります。名前を付けたレイヤーは「UIページ」ではないためです。シーンは「UI ページ」です。

両方 (シーンとレイヤー) で、さらにレイヤーを子として追加できます。そのため、必要な数のレイヤーを積み重ねることができます。これは、実際にはマルチタッチを有効にする良い方法です。オブジェクトごとにレイヤーを作成し、それらのレイヤーでタッチを有効にします。要するに、彼らのやり方は正しいので、レイヤーを操作し、その +scene メソッドを使用してメイン レイヤーをシーンにアタッチする必要があります。

お役に立てれば。私の英語でごめんなさい。ネイティブではありません。

于 2011-06-10T12:47:06.483 に答える
0

ある種のタッチ入力を取得しない限り、Layer を使用する必要はありません (TouchEventsDelegate を実装する Cocos2D の唯一のクラスであるため)。レイヤーなしでコードをシーンに直接配置すると、デモは正常に動作します。私が知る限り、他の Cocos2D 機能 (子の追加、位置の設定など) を示すためだけにそれを行ったようです。

于 2009-05-26T03:55:51.250 に答える