所以我試圖做的是你可以在最短時間看到的。 8在着名的「608最佳做法建設spritekit遊戲」,但在Swift語言。 基本上從另一個.sks文件中的SKScene複製子節點。複製.sks文件中的節點
我只是設法做到了這點,但是程序停止了一個自動斷點,並帶有這個消息「Swift dynamic cast failed」。我不知道什麼是錯的......我的意思是,我知道這條線,但我不明白copy()方法是如何工作的。
這裏是我的代碼:
class GameScene: SKScene {
var camera = SKNode()
var player = SKNode()
override func didMoveToView(view: SKView) {
camera = childNodeWithName("Camera")! as SKNode
player = camera.childNodeWithName("player")! as SKNode
var child = SKNode()
for child in SKScene.unarchiveFromFile("Player")!.children {
//Here is the line i doubt of
player.addChild(child.copy() as SKNode)
}
}
//etc etc...
提前感謝:d
編輯: 是啊,我創建了另一個項目只是嘗試這種方法,並是的它仍然在該斷點處停止。沒有錯誤,只是在我按下運行後停在那裏。
也有一些是錯誤的驗證碼...
var nodeToFill = SKNode()
override func didMoveToView(view: SKView) {
nodeToFill = childNodeWithName("nodeToFill")!
var child = SKNode()
for child in SKScene.unarchiveFromFile("fillNode")!.children {
child.removeFromParent()
nodeToFill.addChild(child as SKSpriteNode)
}
,這是它停止... (不能張貼圖片...) HTTP://i.stack。 imgur.com/m6RRg.png
編輯2: 好了,所以我把日誌和堆棧幀不作爲文本,以避免使頁面太長......在這裏,他們是:
日誌:http://i.stack.imgur.com/iP7JP.png 堆棧:http://i.stack.imgur.com/JReFU.png
停止的行是調用unarchiveFromFile方法的位置。這與該方法有關,但我不知道有什麼問題
您可以將圖像作爲文本複製並粘貼(選擇和複製),但其內容不相關。調用堆棧,日誌和發生錯誤的代碼行會有所幫助。 – LearnCocos2D
此外,如果sks場景之後被拋棄,則不需要複製節點。相反,對於每個節點,你可以/應該調用它的removeFromParent方法,然後添加它作爲孩子,但不復制它 – LearnCocos2D
希望我添加了正確的東西!不太熟悉那些日誌和堆棧框架......完全沒有:/無論如何,代碼是第一次編輯中的代碼。雖然... – andrello