在 Swift Spritekit 中,每当我从一个场景过渡到另一个场景时,我的 sks 文件都没有传输?



基本上,我的游戏有一个MenuScene和一个GameScene。首先MenuSceneViewController中的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

相关内容

最新更新