2017-07-28 35 views
0

我在Xcode的場景編輯器中構建了一個Scene1。而且我引用了另一個場景,它具有動畫到這個Scene1。在SKReferenceNode中投射一個SKSpriteNode

現在,我正試圖在SKReferenceNode中拋出一個SKSpriteNode。 我試圖在引用的場景上施放SKSpriteNode的名稱是:「sc01eyelid」。

任何建議我可能會在這裏做錯嗎?

謝謝你提前。

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)") 
    } 
} 
} 

回答

0

爲了訪問SKRefference一個的任何節點需要投入額外的「//」在withName聲明:

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

所以withName:「// sc01eyelid」將工作訪問sc01eyelid節點。

更多的信息在這裏: https://developer.apple.com/documentation/spritekit/sknode