gpt4 book ai didi

ios - 暂停 SpriteKit 游戏 - UIApplicationWillResignActive 与 UIApplicationDidBecomeActive?

转载 作者:可可西里 更新时间:2023-11-01 01:18:53 25 4
gpt4 key购买 nike

我理解这两种方法之间的区别,但我想知道在执行暂停 SpriteKit 游戏等操作时,使用 UIApplicationWillResignActive 与 UIApplicationDidBecomeActive(或 UIApplicationDidEnterBackground)相比是否有缺点。我一直浏览网站上的主题,注意到通常在回答询问如何暂停 SpriteKit 游戏的问题时,建议使用 UIApplicationDidBecomeActive 和 UIApplicationDidEnterBackground,而不是 UIApplicationWillResignActive。由于 UIApplicationWillResignActive 也会暂停游戏以响应 Siri/Calls,在处理暂停 SpriteKit 游戏等时这不是更好的方法吗?或者使用它有一些缺点吗?

下面是我的通知和暂停功能:

NotificationCenter.default.addObserver(self, selector: #selector(self.pauseGame), name:NSNotification.Name.UIApplicationDidBecomeActive, object: nil)

//OR

NotificationCenter.default.addObserver(self, selector: #selector(self.pauseGame), name:NSNotification.Name.UIApplicationWillResignActive, object: nil)

暂停功能:

func pauseGame(){
print(self.scene?.isPaused)
if sceneIsPaused == true || isGameOver == true{
return
}

leftMobGenTimer.invalidate()
rightMobGenTimer.invalidate()
genDragonTimer.invalidate()
checkNinjaTimer.invalidate()

chiStrikeTimer.invalidate()
randCoinTimer.invalidate()

print("Timer stopped?")

if soundEnabled == true{
player.pause()
}

self.scene?.isPaused = true
sceneIsPaused = true
makePauseView()

}

最佳答案

暂停

这是来自关于 applicationWillResignActive 的文档方法:

You should use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. An app in the inactive state should do minimal work while it waits to transition to either the active or background state.

所以这个方法是用来暂停游戏的。

正在取消暂停

iirc,当应用程序从非事件状态转换为事件状态时,游戏应该自动取消暂停。这是调用 applicationDidBecomeActive 方法的时刻,因此在某些情况下,您可能也想在这里暂停游戏……但这取决于您的游戏。

我不知道你为什么提到暂停/取消暂停的 applicationDidBecomeActiveapplicationDidEnterBackground 的组合...因为在 applicationDidEnterBackground,从技术上讲,不需要在 applicationDidBecomeActive 中取消暂停游戏,因为这是自动完成的。

关于ios - 暂停 SpriteKit 游戏 - UIApplicationWillResignActive 与 UIApplicationDidBecomeActive?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44854589/

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