我正试图在退出应用程序时暂停Sprite Kit游戏

时间:2018-08-02 23:29:24

标签: ios swift sprite-kit

当我在应用程序中时,我可以暂停没有问题的游戏。但是,当我尝试调用我在App Delegate的applicationWillResignActive函数中创建的暂停函数时,它根本不起作用。这是我要在我的应用程序委托文件中使用的代码。

func applicationWillResignActive(_ application: UIApplication) {
    GamePlayScene.instance.isPaused = true
    print("Game is Paused")
}

print语句被调用,所以我知道该函数正在被调用。但是,游戏仍然保持活动状态。我正在尝试调用在isPaused中使用的同一GamePlayScene函数。

起作用的一件事是,如果我仅使用SpriteKit中的正常暂停功能,但是在打开应用程序后找不到恢复游戏的方法。例如,我可以使用它。

func applicationWillResignActive(_ application: UIApplication) {
    pause()
    print("Game is Paused")
}

这似乎可行,但是整个应用程序只是冻结打开,无法继续进行。你们怎么想?

1 个答案:

答案 0 :(得分:0)

弄清楚了。由于参与SpriteKit游戏时没有看到其他答案的人,因此我将发布答案。这是我的代码。

let notificationCenter = NotificationCenter.default
    notificationCenter.addObserver(self, selector: #selector(appMovedCameBack), name: Notification.Name.UIApplicationDidBecomeActive, object: nil)

@objc func appMovedCameBack() {
    print("App Came Back!")

    self.scene?.isPaused = true

    GamePlayController.instance.pauseBtn?.alpha = 0

    createPausePanel()
}

我正在调用创建PausePanel并将其添加到场景中的函数。那就是createPausePanel()函数。我也在设置scene.isPaused = true。这就是我解决问题的方式。