当我在应用程序中时,我可以暂停没有问题的游戏。但是,当我尝试调用我在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")
}
这似乎可行,但是整个应用程序只是冻结打开,无法继续进行。你们怎么想?
答案 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。这就是我解决问题的方式。