2011-09-13 250 views
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

我想你感到困惑,暂停和恢复状态在您的回调函数表示什么都没有做与你的游戏还是游戏“播放”。这些调用在操作系统由于某种原因决定暂停应用程序时使用。

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

+0

,谢谢你的回复。我有一个逻辑,但我无法理解在哪里写它。你能帮我解决这个问题吗? – pradeepkalla

+0

我建议你打开另一个问题,包括你已经实现这个接口的代码位,以便我们可以看到你的逻辑是如何工作的 – Elemental

1

解决此问题的一种方法是为您的游戏状态(PLAY,PAUSE)制作一个枚举。在你的主游戏循环中,你可以使用if else语句。如果(GameState == PLAY)更新所有游戏玩法的东西。如果(GameState == PAUSE)更新你的菜单管理器。

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

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

你甚至可以考虑创建一个负责状态转换的GameState类。这对于播放声音和开始动画(如菜单从屏幕顶部向下移动)很方便,此时游戏既不处于暂停状态,也不处于播放状态;思考的食物。进入手机游戏,拥有TOMBSTONE和REVIVE转换状态将非常适合在设备处理其他应用程序时暂时将游戏存入存储器。