2012-01-26 123 views
4

我发现在重新开始游戏后,所有的引擎都会重新载入并且应用程序被重新初始化。 我想保存引擎状态并在“onResume”中恢复游戏过程。暂停后保存游戏状态。 AndEngine

我试着保存所有引擎(mEngine),然后在“onLoadEngine”恢复游戏后返回保存的引擎。我认为这是一个糟糕的解决方案,它不起作用

在andEngine中暂停\恢复游戏(例如电源键按下后)的最佳解决方案是什么?

+0

不应该有任何理由这样做,因为android在暂停时不应该终止您的活动。 – Jong

+2

也许Android不会杀死我的进程,但AndEngine重新初始化整个场景,我想保存它的'状态 – dilix

回答

3

我找到的解决方案是将引擎的状态序列化为JSON并将其保存为共享存储。 它的很多工作,但它确实保存它。由于andengine会在暂停后重新启动引擎和纹理,因此我认为没有多少选择,除非您想为游戏重新编写一些引擎。 (你可以)

在我的JSON中,我记录了每个精灵的位置类型velocity等。获得保存的复杂程度取决于游戏的复杂程度。然后为每个类添加一个接受JSON作为输入的反序列化方法。

作为该方法的脚注,我无法说出令人惊叹的GSON库,使其更容易完成。 http://code.google.com/p/google-gson/

但是记住恢复游戏时,要将恢复状态设置为暂停状态,以便用户知道游戏何时重新开始。