游戏从swift中的后台恢复后从暂停状态退出

时间:2014-12-26 09:21:53

标签: ios swift appdelegate

我正在开发一款使用SpriteKit的游戏,可以在执行期间暂停并可以恢复。 但是当游戏暂停时按下主页按钮时applicationDidEnterBackground出现问题,因为当我恢复游戏时,即使游戏暂停,实体也会立即开始移动。 我找不到在applicationDidEnterBackground中实施AppDelegate和其他相关方法的方法,因为它与我的GameScene.swift

之间没有联系

我实际上是用代码暂停实体

entitiesLayerNode.paused = true
gameState = .GamePaused

编辑:

我想明确暂停entitiesLayerNode,因为我还有其他的移动'我想保留的节点。问题在于,根据下面给出的建议,该方法会暂停一切!我只需要暂停那一层。 我认为问题在于我无法从View Controller访问entitiesLayerNode。 我通常使用代码段

let mainScene = scene as GameScene
mainScene.entitiesLayerNode.pause = true

但Xcode给我一个错误,scene是一个未解析的标识符。

1 个答案:

答案 0 :(得分:2)

here

几乎相同

的AppDelegate:

func applicationWillResignActive(application: UIApplication) {
    NSNotificationCenter.defaultCenter().postNotificationName("PauseGameScene", object: self)
}

GameSceneViewController:

override func viewDidLoad() {
    super.viewDidLoad()

    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("pauseGameScene"), name: "PauseGameScene", object: nil)
}

func pauseGameScene() {
    if self.skView.scene != nil {
        self.skView.paused = self.skView.scene.paused = true
    }
}