我已经在 Android 上发布了我的游戏,但我没有在 libGDX 中构建它。现在我正在重建游戏,我遇到了一个大问题,我希望有人能帮助我。
我最初使用 Android 的 SharedPreferences 来保存数据我现在将使用 libGdx Preferences。这对于从未下载过游戏的人来说很好。但我担心已经下载它的人(我不希望他们丢失保存的数据)。有没有一种简单的方法可以在我的新版本游戏中获取这些数据?
更新
我能够使用完全相同的代码。由于 LibGDX 的 Preferences 是基于 SharedPreferences 的。这太棒了。我只希望在将它移至 iPhone 时它能正常工作。
最佳答案
您应该能够在游戏的 Android 后端读取旧的 SharedPreferences
(您可以在其中使用任意 Android 代码)。
您需要使用 Libgx“平台特定代码”方法进行设置,以便您的共享代码可以调用 Android 代码。 (有关详细信息,请参阅维基页面:https://code.google.com/p/libgdx/wiki/ApplicationPlatformSpecific)。
有几种方法可以构建它,但我认为您应该首先创建一个包含 upgradeOldPreferences
方法的接口(interface)。将实现该接口(interface)的类的引用传递到每个后端的 ApplicationListener
的构造函数中(该类在其他后端上是空操作)。在 Android 后端,您需要检查"new"首选项以查看是否需要转换现有首选项。如果这样做,请使用特定于 Android 的 SharedPreferences
代码阅读它们。您可以在 Android 后端使用 Libgdx API,因此您可以写出 Libgdx 首选项,或者将结果数据传回您的游戏(例如,作为接口(interface)方法的返回值)。此时,您可能希望在新首选项中保留一个标志,表明您已经转换了旧首选项。
或者,您可以依靠 Android 上的 Libgdx 使用 SharedPreferences
作为其后端(参见 AndroidPreferences.java)这一事实,并更直接地将旧首选项迁移到 Libgdx 使用的格式。
关于android - 从 SharedPreferences 转换过来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16765574/