Frage

ich einige der cocos2d Dokumentation zu lesen, gerade fertig und so weit wie ich verstehe, ein Hintergrundbild auf eine Schicht hinzuzufügen, die Sie zu tun haben, so etwas wie:

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

Allthough soweit meine Prüfung geht können Sie einfach direkt auf das Sprite in die Szene wie folgt hinzu:

@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;

}

Was ist der Unterschied zwischen diesen zwei Optionen, und was ist der bessere Weg, um einen Hintergrund für eine Schicht zu setzen ?. Jede Hilfe wird sehr geschätzt.

War es hilfreich?

Lösung

Sie brauchen nicht um eine Schicht zu haben, aber sie sind praktisch. Man denke an den Schichten als eine Art und Weise des Gruppierens von Sprites (sowohl visuell als auch organisatorisch). Sie können Ihre Hintergrundbilder gruppiert als eine Schicht und alle Feinde in einem Spiel als eine weitere Schicht soll. Auf diese Weise können Sie mit jedem Satz mehr sauber behandeln. z.B. Sie können eine bestimmte Schicht entfernen, anstatt alle Feinde zu finden und zu entfernen sie.

Wenn es hilft, mit Ebenen in Photoshop spielen oder ein Grafikprogramm bearbeiten. Schichten in cocos2d Arbeit in ähnlicher Weise.

Für eine einfache Szene, Hinzufügen des Hintergrunds zu einer Schicht oder zu einer Szene wird nicht viel Unterschied machen. Aber es dauert nicht lange, bevor die Vorteile der Schichtung Kicks in.

Andere Tipps

Auch Schichten Steuerzeichnung, um (über jede Zwischenschicht z Ordnung).

In geoSpark zum Beispiel habe ich eine Hintergrundschicht, eine Funkenschicht, eine UI-Schicht usw. (vereinfacht). Aber das erlaubt mir sicher, dass meine Sachen UI zu machen, ist immer über jedem Spiel Zeug (die Funkenschicht) und alles, was über dem Hintergrund ist.

Wenn Sie Ihr Spiel nur additive Rendering der Fall ist, ziehen um wird nicht viel aus. :)

- David

Szene ist eine Tafel, die Schicht ist eine Seite ... Nachrichten auf Seite geschrieben, aber wenn Sie möchten, dass Sie auf dem Brett schreiben. Wenn Sie alle neuen wollen löschen.

In cocos2d wir einen beliebigen Knoten auf einem beliebigen Knoten hinzufügen können. Aber es hängt von Hierarchiestufe.

Sie können auf Layer Szenen hinzufügen. Wenn Sie für alle Schichten gleiche Eigenschaft oder sehen möchten, dass Sie auf einem CCScene hinzufügen können Sie die in CCScene (wie in Ihrem zweiten Fall) hinzuzufügen. aber wenn Sie möchten, andere Funktion haben, auf jeder Ebene diejenigen CCLayer hinzuzufügen.

CCLayer wird für einen bestimmten Zweck für die Gruppierung eine Menge von Knoten / Sprites gemeint. Zum Beispiel können Sie eine Schicht hinzufügen, die zusammen mit einigen Scrolling-Schicht für die Anzeige von som Art immer auf dem Bildschirm Optionen nach einer Pause eines Spiels oder HUD Schicht (in einigen Scrolling-Plattform-Spiele liken).

Schließlich kann man sogar CCNode auf einem CCScene, eine Schicht auf einer anderen Ebene, und sogar einen CCNode auf einem CCSprite. Aber die Reihenfolge der in cocos2d unterscheidet sich in Grafikkontext zu ziehen.

hoffe, Sie haben den Unterschied.

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top