基本上,我的游戏有一个MenuScene
和一个GameScene
。首先MenuScene
如ViewController
中的viewDidLoad
函数所示
override func viewDidLoad() {
super.viewDidLoad()
if let scene = MenuScene(fileNamed:"MenuScene") {
// Configure the view.
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
/* Set the scale mode to scale to fit the window */
scene.scaleMode = .aspectFit
skView.presentScene(scene)
}
}
有一个简单的菜单屏幕,带有一个播放按钮,可以直接转移到游戏中。这是我touchesBegan
方法中的 if 块:
if node == playButton {
playButton.size.height=playButton.size.height+30
playButton.size.width=playButton.size.height+30
if view != nil {
let transition:SKTransition = SKTransition.fade(withDuration: 1)
let scene:SKScene = GameScene(size: self.size)
self.view?.presentScene(scene, transition: transition)
}
}
但是当它过渡到我的GameScene
时,我的GameScene
的sks文件没有渲染?并且我的GameScene.swift
中连接到sks
文件中精灵的所有变量都丢失了。我该如何解决这个问题?
尝试:let scene = SKScene(fileNamed: "GameScene")
let scene:SKScene = GameScene(size: self.size)
表示您正在加载类型GameScene
的实例。 它永远不会加载任何文件。
另一方面,SKScene(fileNamed: "GameScene")
会加载文件,请务必检查 sks 文件上的自定义类字段是否显示GameScene