在Swift Spritekit中,每当我从一个场景转换到另一个场景时,我的sks文件都没有转移?

时间:2017-07-14 08:08:01

标签: swift3 sprite-kit

基本上我的游戏有MenuSceneGameSceneMenuScene首先显示在viewDidLoad

ViewController函数中
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-block:

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文件中的精灵的所有变量都丢失了。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

尝试:let scene = SKScene(fileNamed: "GameScene")

let scene:SKScene = GameScene(size: self.size)表示您正在加载GameScene类型的实例。它不会加载任何文件。

另一方面,

SKScene(fileNamed: "GameScene")会加载一个文件,只需确保检查sks文件中的自定义类字段是否为GameScene

相关问题