1

我已经在 Android 上发布了我的游戏,但我没有在 libGDX 中构建它。现在我正在重建游戏,我遇到了一个大问题,我希望有人能帮助我。

我最初使用 Android 的 SharedPreferences 来保存数据,我现在将使用 libGdx Preferences。这对于从未下载过游戏的人来说会很好。但我担心已经下载它的人(我不希望他们丢失保存的数据)。有没有一种简单的方法可以在我的新游戏版本中获取这些数据?

更新

我能够使用完全相同的代码。由于 LibGDX 的 Preferences 是基于 SharedPreferences 的。这太棒了。我只是希望它在移动到 iphone 时能正常工作。

4

1 回答 1

2

您应该能够SharedPreferences在您的游戏的 Android 后端读取旧版本(您可以在其中使用任意 Android 代码)。

您需要使用 Libgx“平台特定代码”方法进行设置,以便您的共享代码可以调用 Android 代码。(有关更多详细信息,请参阅 wiki 页面:https ://code.google.com/p/libgdx/wiki/ApplicationPlatformSpecific )。

有几种方法可以构建它,但我认为您应该首先创建一个包含方法的接口,例如upgradeOldPreferences. 将实现该接口的类的引用传递到ApplicationListener每个后端的构造函数中(该类在其他后端是无操作的)。在 Android 后端,您需要检查“新”首选项以查看是否需要转换现有首选项。如果您这样做了,请使用 Android 特定SharedPreferences代码阅读它们。您可以在 Android 后端使用 Libgdx API,因此您可以写出 Libgdx 首选项,或者只是将结果数据传回您的游戏(例如,作为接口方法的返回值)。此时,您可能希望在新首选项中保留一个标志,说明您已经转换了旧首选项。

或者,您可以依靠 Android 上的 LibgdxSharedPreferences用作其后端的事实(请参阅AndroidPreferences.java),并更直接地将旧首选项迁移到 Libgdx 使用的格式中。

于 2013-05-27T04:58:45.540 回答