25

cocos2dのドキュメントを読み終えたところです。理解している限り、レイヤーに背景画像を追加するには、次のような操作を行う必要があります。

Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
[layer addChild:bg z:0];

私のテストでは、次のようにスプライトをシーンに直接追加できます。

@implementation IntroScene
- (id) init {
self = [super init];
if (self != nil) {
    Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
    [bg setPosition:ccp(240, 160)];
    [self addChild:bg z:0];
    [self addChild:[MenuLayer node] z:1];
}
return self;

}

この2つのオプションの違いは何ですか?また、レイヤーの背景を設定するためのより良い方法は何ですか?どんな助けでも大歓迎です。

4

4 に答える 4

25

レイヤーは必要ありませんが、便利です。レイヤーは、スプライトを(視覚的にも組織的にも)グループ化する方法と考えてください。背景画像をレイヤーとしてグループ化し、ゲーム内のすべての敵を別のレイヤーとしてグループ化することができます。これにより、各セットをよりクリーンに処理できます。たとえば、すべての敵を見つけて削除する代わりに、特定のレイヤーを削除できます。

それが役立つ場合は、Photoshopまたはグラフィック編集プログラムでレイヤーを試してみてください。cocos2dのレイヤーも同様に機能します。

単純なシーンの場合、レイヤーまたはシーンに背景を追加しても大きな違いはありません。しかし、階層化のメリットが発揮されるまで、それほど時間はかかりません。

于 2009-12-23T20:01:01.060 に答える
8

また、レイヤーは描画順序を制御します (レイヤー間の z 順序に加えて)。

たとえば、geoSpark には、背景レイヤー、スパーク レイヤー、UI レイヤーなどがあります (簡略化)。しかし、これにより、UI 要素が常にゲーム要素 (spark レイヤー) の上にあり、すべてが背景の上にあることを確認できます。

ゲームが加算レンダリングのみを行う場合、描画順序はあまり重要ではありません。:)

-- デビッド

于 2010-01-01T19:43:06.533 に答える
4

シーンは黒板、レイヤーはページ・・・ニュースはページに書いてありますが、ボードに書いてもいいです。必要に応じて、新しいものをすべて消去します。

于 2012-11-08T06:16:17.893 に答える