正如上面有人所说的“fileNamed:“GameScene”“
if let scene = GameScene(fileNamed:"GameScene") {
引用 GameScene.sks 文件,它相当于游戏的故事板。
如果您创建一个新的 SKScene 类并尝试以这种方式从另一个 SKScene 或 gameViewController 加载它,它将无法工作,因为它找不到相应的 sks 文件。
我不是 100% 确定如何创建一个新的 sks 文件,因为我没有在我的游戏中使用它。
如果您只想加载您创建的新场景,您可以在 gameViewController 中使用此代码
let skView = self.view as! SKView
let scene = NewScene(size: skView.bounds.size)
skView.ignoresSiblingOrder = true
skView.multipleTouchEnabled = true
scene.scaleMode = .AspectFill
skView.presentScene(scene)
如果您想从 SKScene 类加载另一个场景,其代码基本相同
let newScene = NewScene(size: self.size) //size of current scene
let transition = SKTransition.doorsCloseHorizontalWithDuration(0.5) // use transition between 2 SKScenes
let skView = self.view as! SKView
skView.ignoresSiblingOrder = true
skView.multipleTouchEnabled = true
newScene.scaleMode = .AspectFill
skView.presentScene(newScene, transition: transition)
或者更简洁的版本
let newScene = NewScene(size: self.size)
let transition = SKTransition.doorsCloseHorizontalWithDuration(0.5)
newScene.scaleMode = SKSceneScaleMode.AspectFill
self.view?.presentScene(newScene, transition: transition)