2009-03-05 9 views
5

Mit cocos2d für iPhone Spieleentwicklung, bin ich verwirrt zwischen Layer und Szene. Zum Beispiel, Mein einfaches Spiel haben mehrere "UI-Seiten" wie Hauptmenü, Highscores, Spielbrett etc.Layer vs Szene in Cocos2d für iPhone Spielentwicklung

Also sollte ich Layer oder Szene für jede "UI-Seite" verwenden, und warum?

Antwort

4

Überprüfung SpritesDemo.m/.h, es scheint, dass sie Schicht verwenden und dann neue Szenen zu schaffen, um die Schicht befestigt und dann auf den Regisseur die Szene ersetzt

@interface SpriteDemo : Layer 
@interface SpriteManual : SpriteDemo 

Der Code dann das tut folgende:

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

Also, kurz gesagt, wäre die Antwort auf Ihre Frage „beide“, Sie Layer für Ihre tatsächliche „UI-Seite“ repräsentieren, aber Sie die Ebene auf eine neue Szene anhängen und ersetzen Sie den aktuellen Szene im Regisseur.

+0

Sie müssen fast CCLayer-Funktion lieber als CCScene überschreiben. Auf diese Weise müssen Sie die CCScene-Funktion nicht überschreiben. – Emadpres

0

Sie müssen wirklich keinen Layer verwenden, es sei denn, Sie erhalten irgendeine Art von Berührungseingabe (weil es die einzige Klasse in Cocos2D ist, die TouchEventsDelegate implementiert). Die Demos funktionieren gut, wenn Sie ihren Code ohne die Ebene direkt in die Szene stellen. Soweit ich das beurteilen kann, haben sie das nur getan, um andere Cocos2D-Funktionen zu demonstrieren (Hinzufügen von Kindern, Setzen von Positionen usw.).

2

Es ist einfach:

Sie haben eine CCLayer in diesen Beispielen und a + Szene Methode, die eine neue Szene macht und legt die Schicht darauf. Weil eine Ebene keine "UI-Seite" ist, wie Sie sie benannt haben. Eine Szene ist eine "UI-Seite".

Auf beiden (Szene und Ebene) können Sie weitere Ebenen als untergeordnete Elemente hinzufügen. So können Sie so viele Ebenen stapeln, wie Sie möchten. Dies ist eigentlich eine gute Möglichkeit, Multitouch zu aktivieren - indem Sie für jedes Ihrer Objekte eine Ebene erstellen und diese Ebenen berühren. Fazit: Die Art und Weise, wie sie es getan haben, ist richtig, also solltest du auch mit Ebenen arbeiten und diese + Szenenmethode verwenden, um die Haupt-Ebene an die Szene anzuhängen.

Hoffe, das hilft. Entschuldigung für mein Englisch. Nicht einheimisch.

Verwandte Themen