1

我正在使用 libgdx 框架开发游戏。当我暂停游戏时,我想提出一个对话,并且在那个对话上我想使用一个恢复按钮。我知道我应该使用pause()resume()方法,但我无法理解我应该在这些方法中写什么。

任何帮助将不胜感激。

我的代码:

@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
4

2 回答 2

4

我认为您很困惑,回调函数中指示的暂停和恢复状态与您的游戏或游戏是否“正在播放”无关。当操作系统出于某种原因决定暂停应用程序时使用这些调用。

快速浏览一下 android 开发人员文档将帮助您解决这些“终身”问题——另一方面,您需要以某种方式在游戏中实现自己的暂停和恢复逻辑。

于 2011-09-13T06:22:43.570 回答
1

解决此问题的一种方法是为您的游戏状态(播放、暂停)创建一个枚举。在您的主游戏循环中,您可以使用 if else 语句。if(GameState == PLAY) 更新所有游戏内容。if(GameState == PAUSE) 更新你的菜单管理器。

通常在游戏架构中,应该使用状态来解决这些类型的问题。游戏架构的另一条​​规则是让所有游戏实体的行为与 elapsedTime 相关。这样,无论在什么设备上玩游戏,游戏的速度总是相同的。我在所有游戏中都使用秒作为小数,所以所有运动都以米/秒为单位。这样我就可以插入真实的物理方程,这样我就不会一直追逐疯狂的数字来试图让事情发挥作用。

在这种情况下,快速解决暂停的方法是在游戏处于暂停状态时将经过的秒数设置为零。这是一个黑客!证明使用状态几乎总是最好的主意,尤其是对于诸如游戏类之类的管理器类。

您甚至可以考虑创建一个负责状态之间转换的 GameState 类。这对于播放声音和启动动画(例如菜单从屏幕顶部向下移动)很方便,此时游戏既不是暂停也不是播放;深思熟虑。

进入手机游戏,拥有 TOMBSTONE 和 REVIVE 过渡状态非常适合在设备处理其他应用程序时将游戏临时缓存到存储中。

于 2012-11-25T07:37:16.413 回答