2017-04-01 49 views
2

我有一個名爲(Player.swift)的類。然後在我的(Scene.swift)類中,我宣佈我的對象是這樣的。自定義類型的ChildNode在Swift Playground上返回Nil

var player: Player? 

然後在我的initializeGame功能,我做這樣的

private func initializeGame() { 

    player = childNode(withName: "Player") as? Player!; 
    //print NIL 
    print(player?.name); 
    // initializePlayer()is declared in Player.swift 
    player?.initializePlayer(); 
    print(player?.name); 
    //Print NIL 
    scoreLabel = childNode(withName: "ScoreLabel") as? SKLabelNode!; 
    scoreLabel?.text = "0"; 
} 

我在Xcode做了我的IOS的項目,它的做工精細,然後創建一個遊樂場項目,並導入所有的Xcode的文件在這個項目中,除了播放器運行不正常外,我的操場運行正常。問題在於將播放器節點與.sks文件中的自定義類相關聯。我的Xcode項目的名稱是「遊戲玩法」,因此我在自定義類的模塊和播放器中編寫了遊戲玩法,並在Playground中使用相同的sks文件導致問題,我的遊樂場項目名稱爲「MyPlayground」,因此模塊名稱應該與項目名稱相同,因此我將模塊字段編輯爲My Playground,但仍然無法工作。所以請指導我如何正確地改變它。

回答

0

1 - 打開(.sks)文件

2,選擇播放器節點。

3選擇顯示自定義類檢查器。

4-Write「MyPlayground_Sources」而不僅僅是MyPlayground。

0

方法childNode(withName:)返回現有的已添加到節點層次結構的子節點。如果沒有找到具有該名稱的節點,則返回nil

您是否有添加名爲「Player」的節點的代碼?它是Player類型的節點嗎?它被稱爲?

+0

請檢查編輯。問題在於將播放器節點與.sks文件中的自定義類相關聯。 –

+1

Swift(和目標C就此而言)區分大小寫,因此請確保模塊名稱與您在.swift文件中使用的導入完全匹配。 –

+1

我之前沒有玩過.sks文件,但讓我看看是否可以將快速演示覆制到您的問題。 –