2009-03-05 18 views
5

iPhoneゲーム開発用にcocos2dを使用すると、レイヤーとシーンが混乱します。 たとえば、私のシンプルなゲームには、メインメニュー、ハイスコア、ゲームボードなどのいくつかの「UIページ」があります。iPhoneゲーム開発用Cocos2dのレイヤー対シーン

「UIページ」ごとにレイヤーまたはシーンを使用する必要があります。

答えて

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のページ」を表現するために、レイヤを使用していますが、新しいシーンにレイヤーを添付し、現在に置き換えます監督のシーン。

+0

ほとんどの場合、CCSceneではなくCCLayer関数をオーバーライドする必要があります。このようにして、CCScene関数をオーバーライドする必要はありません。 – Emadpres

0

TouchEventsDelegateを実装するCocos2Dの唯一のクラスであるため、何らかのタッチ入力が得られない限り、本当にレイヤを使用する必要はありません。デモはレイヤーなしでシーンに直接コードを置くとうまくいきますので、他のCocos2Dの機能(子供の追加、ポジションの設定など)を実演するためにしかできませんでした。

2

それは簡単です:

彼らはこれらの例でCCLayerと新しいシーンを作り、その上に層を付加し、A +シーンメソッドを持っています。レイヤーは名前を付けたときに「UIページ」ではないためです。シーンは「UIページ」です。

両方(シーンとレイヤー)でレイヤーを子として追加できます。 これで、必要な数のレイヤーをスタックできます。これは、実際には、各オブジェクトのレイヤーを作成し、それらのレイヤーに触れることで、マルチタッチを有効にする良い方法です。ボトムライン、彼らはそれが正しい方法ですので、あなたはあまりにもレイヤーで作業し、+シーンメソッドを使用してメインレイヤーをシーンに貼り付けるべきです。

これが役に立ちます。 私の英語は申し訳ありません。ネイティブではありません。