gpt4 book ai didi

ios - 将应用程序带回前台时无法取消暂停游戏

转载 作者:行者123 更新时间:2023-11-30 14:10:47 25 4
gpt4 key购买 nike

当我的应用程序进入后台时,SpriteKit 会自动暂停它。这很好,但当应用程序再次激活时它会保持暂停状态。我试图在适当的应用程序事件中取消暂停游戏,但无济于事。我手动取消暂停构成应用程序的两个 SKViews 和游戏 Scene。从 AppDelegate 文件内部:

func applicationWillEnterForeground(application: UIApplication) {

if let vw = self.window?.rootViewController {
let gc = vw as! GameViewController
let parView = gc.view as! SKView
parView.paused = false
gc.gameView.paused=false
gc.gameScene.paused=false
println("paused = \(gc.gameScene.paused)")

}

}

func applicationDidBecomeActive(application: UIApplication) {

if let vw = self.window?.rootViewController {
let gc = vw as! GameViewController
let parView = gc.view as! SKView
parView.paused = false

gc.gameView.paused=false
gc.gameScene.paused=false
println("paused = \(gc.gameScene.paused)")

}

}

最后我打印暂停状态。如果我按下设备的 Home 键,然后返回到应用程序,它会根据需要打印 false。然而,在某个地方(不是通过我的代码),它被立即设置回 true,并且游戏保持暂停状态。

更新

我覆盖了场景的 paused 属性,并且在我在给定事件中取消暂停后,它肯定会被设置回 true 。令人困惑的是,因为从阅读其他问题来看, Sprite 套件的典型行为是在应用程序重新激活时自动取消暂停游戏。然而它对我来说却恰恰相反。

最佳答案

好吧,我基本上放弃了尝试在应用程序状态更改期间控制游戏是否暂停/恢复。相反,我覆盖了场景的 paused 属性,因此现在我可以检测 Sprite 套件何时决定暂停或恢复,并相应地进行处理。我怀疑我的应用中的 SKViews 层次结构可能不是传统的,并且可能导致 Sprite 套件难以控制场景状态,但这只是一个猜测。

关于ios - 将应用程序带回前台时无法取消暂停游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31799885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com