- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我理解这两种方法之间的区别,但我想知道在执行暂停 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
方法的时刻,因此在某些情况下,您可能也想在这里暂停游戏……但这取决于您的游戏。
我不知道你为什么提到暂停/取消暂停的 applicationDidBecomeActive
和 applicationDidEnterBackground
的组合...因为在 applicationDidEnterBackground
,从技术上讲,不需要在 applicationDidBecomeActive
中取消暂停游戏,因为这是自动完成的。
关于ios - 暂停 SpriteKit 游戏 - UIApplicationWillResignActive 与 UIApplicationDidBecomeActive?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44854589/
我理解这两种方法之间的区别,但我想知道在执行暂停 SpriteKit 游戏等操作时,使用 UIApplicationWillResignActive 与 UIApplicationDidBecomeA
我是一名优秀的程序员,十分优秀!