2017-07-28 2 views
0

Ich habe ein Scene1 in Xcode Scene-Editor erstellt. Und ich habe eine andere Szene referenziert, die Animation zu dieser Scene1 hat.Casting eines SKSpriteNode in einem SKReferenceNode

Jetzt versuche ich einen SKSpriteNode auszuwerfen, der sich in einem SKReferenceNode befindet. Der Name des SKSpriteNode, den ich zu werfen versuche, auf einer Szene, die Referenzen war: "sc01eyelid".

Irgendwelche Vorschläge, was ich hier falsch machen könnte?

danke im voraus.

import SpriteKit 
import GameplayKit 

class Scene1: SKScene { 
    var misha: SKReferenceNode = SKReferenceNode() 
    var eyelidForScene1:SKSpriteNode = SKSpriteNode() 

override func didMove(to view: SKView) {   
    castMishaForScene1() 
    castOutEyelid() 
} 

//Casting out misha 
func castMishaForScene1() { 
    if let someSpriteNode:SKReferenceNode = self.childNode(withName: "mishaRefNode") as? SKReferenceNode { 
     misha = someSpriteNode 
     print("CASTED\(misha)") 
    } 
    else { 
     print("could not cast\(misha)") 
    } 
} 

//Casting out eyelid 
func castOutEyelid() { 
    if let someSpriteNode:SKSpriteNode = misha.childNode(withName: "sc01eyelid") as? SKSpriteNode { 
     eyelidForScene1 = someSpriteNode 
     print("CASTED\(eyelidForScene1)") 
    } 
    else { 
     print("could not cast\(eyelidForScene1)") 
    } 
} 
} 

Antwort

0

Um jeden Knoten des SKRefference eines zugreifen muss zusätzlich setzen "//" in der Anweisung withname:

if let someSpriteNode:SKSpriteNode = misha.childNode(withName: "//sc01eyelid") as? SKSpriteNode {} 

So withname: "// sc01eyelid" die für den Zugriff auf funktionieren würde, sc01eyelid Knoten.

Weitere Informationen hier: https://developer.apple.com/documentation/spritekit/sknode

Verwandte Themen