当我在应用程序中时,我可以暂停我所创建的游戏。但是,当我尝试调用我在 App Delegate 的 applicationWillResignActive
函数中创建的暂停函数时,它根本不起作用。这是我尝试在应用程序委托(delegate)文件中使用的代码。
func applicationWillResignActive(_ application: UIApplication) {
GamePlayScene.instance.isPaused = true
print("Game is Paused")
}
print
语句被调用,所以我知道该函数正在被调用。然而,游戏仍然保持活跃。我正在尝试调用与我在 GamePlayScene
中使用的相同的 isPaused
函数。
有效的一件事是,如果我只使用 SpriteKit 中的正常暂停功能,但是,我在打开应用程序后找不到恢复游戏的方法。例如,我可以使用这个。
func applicationWillResignActive(_ application: UIApplication) {
pause()
print("Game is Paused")
}
这似乎有效,但整个应用程序只是卡住打开,无法继续运行。大家觉得怎么样?
最佳答案
想通了。由于我没有看到其他人在涉及 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。这就是我解决问题的方法。
关于ios - 我试图在退出应用程序时暂停 Sprite Kit 游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51663426/