当用户单击主页按钮时暂停 iOS 应用程序游戏

Posted

技术标签:

【中文标题】当用户单击主页按钮时暂停 iOS 应用程序游戏【英文标题】:Pausing iOS app game when User clicks Home Button 【发布时间】:2015-05-27 21:02:16 【问题描述】:

当用户在玩游戏时,如果他们在 iPhone/iPad 上点击 Home 按钮,游戏会自行暂停,但如果用户点击应用程序打开它,游戏不会保持暂停状态,而是游戏会引导他们进入游戏画面.我如何编写代码,一旦用户单击主页按钮,游戏就会暂停,如果他们再次点击应用程序,则游戏会在 2 秒内取消暂停并继续。以下方法中是否有特定代码可以暂停整个游戏,然后在有人单击它并经过几秒钟后取消暂停?

  UIApplicationDelegatedelegate 
  -(void)applicationWillResignActive:(UIApplication *)application
  -(void)applicationWillEnterForeground:(UIApplication *)application

我让应用程序在后台暂停并保持暂停状态,但我如何才能让用户再次 EnterForeground 时,在游戏取消暂停之前有大约 2 秒的延迟?

【问题讨论】:

粗略地说,您的引擎不知道它已暂停,并认为暂停时时间已经过去。反正这是我的猜测。 @Merc 不要忘记在发布更多内容之前接受您之前问题的答案。 ***.com/help/someone-answers 如果这是您上一个问题***.com/questions/30487732/… 的意思,请编辑该问题。不要放弃这个问题并问另一个几乎相同的问题。 【参考方案1】:

ios 无法神奇地为您暂停或取消暂停您的游戏 - 您必须在代码中自行处理。

一旦你有了取消暂停游戏的逻辑,你就可以通过调用performSelector:withObject:afterDelay:(参见docs)获得你在问题中提到的 2 秒延迟。例如:

[self performSelector:@selector(continueGame) withObject:nil afterDelay:2.0]

self 有一个名为continueGame 的方法来.. 继续游戏。 :)

【讨论】:

实际上我目前使用上面的代码作为我的代码,因为在 GameOver 屏幕出现之前存在延迟,但我完全忘记了。感谢您提醒我,这很有效。

以上是关于当用户单击主页按钮时暂停 iOS 应用程序游戏的主要内容,如果未能解决你的问题,请参考以下文章

当用户按下主页按钮时停止声音

返回 App SpriteKit 后按播放

iPhone:当用户单击主页按钮时,是不是可以关闭应用程序而不是在后台运行?

将播放按钮更改为单击时暂停

在 Shiny 应用程序中,如何暂停 for 循环以获取用户输入,然后在单击按钮后继续?

按主页按钮时视图消失