2016-12-01 40 views
4

我想在Xcode 7.2中創建一個遊戲。我想創建一個信息屏幕,裏面會有一些標籤。但是在新創造的場景中什麼也沒有顯示出來。無論我在新場景中放置什麼,如圖像,精靈,標籤。當我運行它時,沒有任何東西出現在屏幕上。但是我寫的創建標籤的代碼在遊戲最初包含的「GameScene」中工作得很好。什麼都沒有出現在SpriteKit的場景

,我把在InfoScene的代碼如下:

import SpriteKit 

class InfoScene: SKScene { 

override func didMoveToView(view: SKView) { 
    let thanksLabel = SKLabelNode(fontNamed:"Arial") 

    thanksLabel.text = "Thank you for Playing!" 

    thanksLabel.fontSize = 45 

    thanksLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)) 

    self.addChild(thanksLabel) 
} 

}

似乎沒有什麼我錯了。如果我將上面的代碼放在模板最初的GameScene中,它們就會出現。另外,如果我在場景中添加一個精靈,它也不會顯示出來。這真讓我困惑。

+0

我建議你張貼的實例,並提出了'InfoScene' – Epsilon

回答

3

我覺得你只是忘了把你的代碼實例方法,如:

斯威夫特2.X

override func didMoveToView(view: SKView) { 
    // put your stuff here 
} 

斯威夫特3.X:

override func didMove(to view: SKView){ 
    // put your stuff here 
} 

didMove在場景由視圖呈現之後立即被調用。根據實際的文檔,您可以使用此方法創建場景的內容。


更新:(後您的整改意見):

我覺得InfoScene未啓動的某些原因。 確保您的內部didMoveToView使用斷點InfoScene啓動或只需添加您的線之間這條線:

print("∙ \(type(of: self))") 
+0

對不起,我貼錯了代碼的代碼..我實際上使用了didMoveToView方法。但現場仍然沒有什麼。 –

1

你確定你使用的是InfoScene類?你如何製作這個實例?通過SKS文件?如果是這樣,您需要更改自定義類字段設置爲指向您的InfoScene,默認情況下它會去SKScene