2014-07-14 12 views
6

Załóżmy, że zaczynam od sceny initialScene. Ta scena zawiera kilka przycisków. Kiedy użytkownik dotknie przycisku A w tej scenie, przedstawię sceneA. Więc mój kod będzie wyglądać następująco:Nawigacja między scenami w Sprite Kit?

sceneA* scene = [[sceneA alloc] init]; 
[self.scene.view presentScene: scene]; 

Moje pierwsze pytanie jest, gdy instancja sceneA została przedstawiona z initialScene, jest to ułożone na wierzchu przykład initialScene czy też zastąpić go? Czy wystąpienie initialScene zostaje zwolnione w pamięci po wyświetleniu nowej sceny?

Pytam o to, ponieważ sceneA będzie mieć przycisk Wstecz, który po dotknięciu przywraca użytkownika do początkowej sceny. Czy mogę po prostu utworzyć nowe wystąpienie initialScene w obrębie sceneA i zaprezentować je, czy też spowoduje to wiele wystąpień tych samych scen ułożonych jeden na drugim? Zasadniczo, można po prostu zrobić to w sceneA:

if(...) { //if user taps back button 
    initialScene* iniScene = [[initialScene alloc] init]; 
    [self.scene.view presentScene: iniScene]; 
} 

Czy jest tam lepszy sposób to zrobić? Daj mi znać, jeśli jest jakiś sposób, aby to wyjaśnić dalej.

Odpowiedz

5

Zestaw Sprite umożliwia łatwe przechodzenie między scenami. Możesz utrzymywać sceny w sposób ciągły lub usuwać je po przejściu między nimi. W tym przykładzie tworzysz drugą klasę , aby nauczyć się innych zachowań w grze. Gdy tekst "Hello, World!" Zniknie z ekranu, kod utworzy nową scenę i przejdzie do niej scena . Scena Hello jest odrzucana po przejściu.

Kit Sprite Programming Guide

https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/GettingStarted/GettingStarted.html#//apple_ref/doc/uid/TP40013043-CH2-SW10