2014-07-14 14 views
6

Diciamo che inizio con una scena initialScene. Questa scena contiene alcuni pulsanti. Quando l'utente tocca il pulsante A in questa scena, presenterò sceneA. Quindi il mio codice sarebbe simile a questa:Spostarsi tra le scene in Sprite Kit?

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

La mia prima domanda è, quando un'istanza di sceneA è presentato da initialScene, è vero accatastati in cima l'istanza initialScene o lo fa sostituirlo? L'istanza di initialScene viene deallocata in memoria quando viene presentata una nuova scena?

Chiedo a questo perché sceneA avrà un pulsante Indietro che, quando viene toccato, riporta l'utente alla scena iniziale. Posso semplicemente creare una nuova istanza di initialScene all'interno di sceneA e presentarla, o questo si tradurrà in più istanze delle stesse scene impilate l'una sull'altra? In sostanza, posso solo fare questo in sceneA:?

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

O c'è un modo migliore per fare questo? Per favore fatemi sapere se c'è un modo per chiarirlo ulteriormente.

risposta

5

Kit Sprite semplifica la transizione tra le scene. È possibile o mantenere le scene in giro persistentemente, o eliminarle quando si transita tra di loro. In questo esempio, crei una seconda scena per imparare alcuni altri comportamenti di gioco. Quando il testo "Hello, World!" scompare dallo schermo, il codice crea una nuova scena e le transizioni ad esso. La scena Hello viene eliminata dopo la transizione.

Sprite Kit Guida alla programmazione

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