0
我想要將呈現的初始場景更改爲除默認GameScene類之外的另一個類。從閱讀其他問題,我明白我必須在這個部分從GameViewController改變:更改Swift中的初始遊戲場景
if let scene = SKScene(fileNamed: "GameScene") {
print(scene)
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill
// Present the scene
view.presentScene(scene)
}
所以GameScene.swift文件中我創建一個新的類:
class MainMenu : SKScene {
override func didMove(to view: SKView) {
print("At least it ran")
self.scene?.view?.presentScene(GameScene())
}
}
然而,當我改變現場:
if let scene = SKScene(fileNamed: "MainMenu")
當我運行該項目,它被卡住,但是當我用字符串「GameScene」來運行它,然後它完美的作品。我在加載MainMenu時出錯了嗎?
您能否解釋爲什麼我應該使用viewVillLayoutSubviews()方法而不是viewDidLoad()來呈現MenuScene? – Pablo
你可以在任何適合你遊戲的地方加載你的場景。我從遊戲中複製了我的代碼,需要從Layout中加載它。已經有很多解釋ViewController生命週期的例子https://stackoverflow.com/questions/13466189/should-i-initialize-my-viewcontroller-on-viewdidload-or-viewwilllayoutsubviews。我的例子中的重點不是集中在何處加載場景,而是如何加載場景。 –
所以當我不創建SKS文件時,我需要調用初始化程序來設置大小? – Pablo