2014-11-05 10 views
7

Ho creato un "gioco" piuttosto semplice (a questo punto, sperimentale) in XCode usando SpriteKit (con Objective-C).Come si ottiene SKSpriteNode di un elemento creato tramite SpriteKit Editor?

So come creare manualmente un oggetto SKSpriteNode e aggiungerlo a SKScene - ma sto cercando di fare il contrario - dove ho creato lo sprite all'interno della stessa XCode SceneKit GUI (e gli ho dato un nome), ora voglio recuperare nel mio codice.

In precedenti esperienze con XCode, si farebbe dichiarando un @Utilityin @property [etc] e quindi collegandolo come un punto di riferimento all'interno dell'interfaccia utente IB/Storyboard - ma non riesco a trovare un modo simile per farlo all'interno dell'interfaccia utente SpriteKit.

Posso creare una proprietà (come SKSpriteNode) e denominarla come il mio oggetto SpriteKit - e viene visualizzata sotto SKScene (nel debugger), ma è "nil" - cioè non è "associata" con l'oggetto che ho creato nell'interfaccia utente XCode SpriteKit.

Mi manca qualcosa o lo sto facendo completamente male? : -O

risposta

10

Se si imposta la proprietà nome di un nodo nel Sprite Editor Kit, è possibile accedere al nodo, in Swift, da

if let node = self.childNodeWithName("NodeName") as? SKSpriteNode { 
    // Set up your sprite here 
} 

o

SKSpriteNode *node = (SKSpriteNode *)[self childNodeWithName:@"NodeName"]; 

in obj- C.

+0

Nota: questo meccanismo funziona solo se il nodo è figlio diretto della scena. Avrai bisogno di camminare manualmente nell'albero dei nodi con più chiamate se è più complesso. – bshirley

+6

@bshirley SpriteKit ricercherà ricorsivamente attraverso la struttura dei nodi se si aggiunge "//" all'inizio del nome (ad es. "// NodeName"). – 0x141E

+0

@ 0x141E hai visto questa domanda http://stackoverflow.com/questions/38525232/replacing-calayer-and-cabasicanimation-with-skscene-and-skactions – ItsMeAgain

Problemi correlati