0

我正在实现一个游戏,现在我正在实现暂停功能。但我看到了一些不同的方法来做到这一点。我做了很多研究,有这样的教程:教程

但是我已经看到您的应用程序真的可能会被这种警报拒绝:

UIAlertView 的 Apple 文档说:

此类的视图层次结构是私有的,不得修改。

其他方法可能是(如我所见)实现 UIView。但是 UIalertviews 的优点是暂停功能已经实现,我不知道如何在不使用的情况下执行暂停所有动画等的相同功能:

sleep(INFINITY);

实现暂停菜单和功能以获得这样的结果的最佳方法是什么(这是我抽屉里的一张图片):

我朋友的暂停功能

4

1 回答 1

1

你可能需要:

  1. isPaused 用于暂停模式指示器
  2. 弹出屏幕

您应该在主游戏循环中拥有的第一件事是 BOOL isPaused 指示器,因此游戏知道它何时处于暂停模式。通过执行适当的操作,将暂停模式视为任何其他模式。停止该过程并不是很好,因为可能必须完成其他操作。

其次,弹出屏幕可能是具有所需透明度的全屏图形,或者更好:以编程方式制作具有 50% 透明度的黑色图像,因此您可以使背景变暗并在视图堆栈顶部显示警报视图。

关于设计的一点题外话,你应该分为两部分:

  • 仅控制游戏参数的 UI
  • 控制游戏动作的游戏循环

将实际游戏循环与控件分开是很好的。像这个警报视图这样的控件应该只操纵显示参数,而不是调用任何其他操作(可能是 CPU 昂贵的)。当游戏根据状态参数显示图形时,游戏循环应该一直运行。

于 2013-03-31T22:26:21.983 回答