在哪种方法中,方法应该保存/加载游戏状态

时间:2012-02-15 21:01:16

标签: save libgdx resume

有很多关于如何保存游戏状态的文章,它们非常好。但我有一个概念上的误解,我应该在哪里拯救国家?

我的libGDX游戏有多个屏幕,其中一对是 MainMenuScreen MainSceneScreen ,它们都是从 Screen 类继承的。 MainMenuScreen 在游戏开始时显示 MainSceneScreen 稍晚。

有什么问题?我导航到 MainSceneScreen ,强制Android停止应用程序(我更改了设备上的语言设置以实现此目的)。之后我再次选择应用程序,我可以看到 MainMenuScreen 。但是我希望显示 MainSceneScreen

我想我应该覆盖resume方法。但是哪一个?我有类 PsGame ,它扩展了 Game 类的libgdx。我将断点放在resume方法中,结果证明该方法未被调用。我调查了这个问题,我在libGDX的 AndroidApplication 类的onResume方法中发现了这个奇怪的代码:

    if (!firstResume)
        graphics.resume();
    else
        firstResume = false;

我的调试器说 firstResume 是真的,没有去 graphics.resume()行。

  1. 我做错了什么?
  2. 我应该覆盖哪些方法?

1 个答案:

答案 0 :(得分:1)

我认为您已正确缩小此范围,并且您应该在resume子类的Game方法调用期间恢复已保存的状态。如果您稍微切换到某个其他应用程序,然后切换回您的应用程序(无需执行将导致应用程序终止的步骤),则应调用此方法。无论出于何种原因,libgdx都没有转发初始启动的resume调用(从长远来看,这个设计可能是一个好主意,但在开始时有点混乱)。它很容易从您create中的Game方法调用您的恢复代码(仅在应用程序启动时调用),以便让您的游戏首次启动以恢复'行为。