2014-11-05 6 views
7

Ich habe ein ziemlich einfaches (zu diesem Zeitpunkt experimentelles) "Spiel" in XCode mit SpriteKit (mit Objective-C) erstellt.Wie erhalte ich den SKSpriteNode eines Elements, das mit SpriteKit Editor erstellt wurde?

Ich weiß, wie man ein SKSpriteNode-Objekt manuell erstellt und es der SKScene hinzufügt - aber ich versuche das Gegenteil zu tun - wo ich das Sprite in der XCode SceneKit GUI selbst erstellt habe (und ihm einen Namen gegeben habe), jetzt möchte ich retreive es in meinem Code.

In früheren Erfahrungen mit XCode, würden Sie dies tun, indem Sie eine @property UIOutlet [etc] deklarieren und es dann als eine referenzierende Steckdose innerhalb der IB/Storyboard UI verbinden - aber ich kann keine ähnliche Möglichkeit finden, dies zu tun in der SpriteKit Benutzeroberfläche.

Ich kann eine Eigenschaft (als SKSpriteNode) erstellen, und benenne sie genauso wie mein SpriteKit-Objekt - und es erscheint unter der SKScene (im Debugger), ist aber "nil" - dh ist nicht "assoziiert" mit dem Objekt, das ich in der XCode SpriteKit UI erstellt habe.

Fehle ich etwas - oder mache ich das völlig falsch? : -O

Antwort

10

Wenn Sie den Namen Eigenschaft eines Knotens im Sprite Kit Editor eingestellt, können Sie den Knoten, in Swift, von

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

oder

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

in Obj- zugreifen C.

+0

Hinweis: Dieser Mechanismus funktioniert nur, wenn der Knoten ein direktes Kind der Szene ist. Wenn es komplexer ist, müssen Sie den Knotenbaum mit mehreren Aufrufen manuell durchlaufen. – bshirley

+6

@bshirley SpriteKit rekursiv durch den Knotenbaum suchen, wenn Sie "//" an der Vorderseite des Namens hinzufügen (z. B. "// NodeName"). – 0x141E

+0

@ 0x141E haben Sie diese Frage http://StackOverflow.com/Questions/38525232/Replacing-Calayer-and-Cabasicanimation-with-Skscene-and-skations gesehen – ItsMeAgain

Verwandte Themen