通过ViewController.swift文件调用GameScene.swift文件[Swift 3.0 Spritekit]

时间:2017-07-26 02:19:55

标签: swift xcode sprite-kit

我一直在尝试将UIButton用于游戏界面,但我仍然试图弄清楚如何通过我的视图控制器文件调用GameScene文件中的方法。无论如何,我可以给我的视图控制器一个对实际显示在 GameScene.sks 文件中的GameScene实例的引用吗?

到目前为止,这是我在视图控制器中尝试的内容:

// Inside view controller
class GameViewController: UIViewController {

    static var gameScene: GameScene = GameScene()

    func setGameScene(scene: GameScene) {
        GameViewController.gameScene = scene
    }
    ...

这就是我在GameScene文件中所做的。

//Inside GameScene.swift
class GameScene: SKScene {
    override func didMove(to view: SKView) {
        let vc = GameViewController()
        vc.setGameScene(scene: self)
    }
...

1 个答案:

答案 0 :(得分:0)

您想为视图的场景创建计算属性

class GameViewController: UIViewController {
    var gameScene : GameScene? { return (view as? SKView).scene as? GameScene}
    ...
}

现在这需要是可选的,因为有时您的场景可能不是GameScene,这可能会导致您的应用崩溃。