2013-05-27 36 views
1

我已經在Android上發佈了我的遊戲,但是我沒有在libGDX中構建它。現在我正在重建比賽,我遇到了一個很大的問題,我希望有人能幫助我。從SharedPreferences轉換

我最初使用Android的SharedPreferences來保存數據,現在我將使用libGdx首選項。對於從未下載過遊戲的人來說,這將會很好。但我擔心已經下載它的人(我不希望他們丟失他們保存的數據)。在我的新版遊戲中有沒有簡單的方法來獲取這些數據?

UPDATE

我能夠使用完全相同的代碼。由於LibGDX的首選項基於SharedPreferences。這太棒了。我只是希望它在將它移到iphone上時有效。

回答

2

您應該可以閱讀Android後端的舊版SharedPreferences(您可以在其中使用任意Android代碼)。

您將需要使用Libgx「平臺特定代碼」方法進行設置,以便您的共享代碼可以調用Android代碼。 (詳見wiki頁面:https://code.google.com/p/libgdx/wiki/ApplicationPlatformSpecific)。

有幾種方法來構造這個,但我認爲你應該首先創建一個包含像upgradeOldPreferences這樣的方法的接口。將引用實現該接口的類傳遞給每個後端的ApplicationListener的構造函數(該類在其他後端上是不可操作的)。在Android後端,您需要檢查「新」偏好,以查看是否需要轉換現有偏好。如果你這樣做,然後閱讀使用Android特定的SharedPreferences代碼。您可以在Android後端使用Libgdx API,因此您可以寫出Libgdx首選項,或者僅將結果數據傳回給您的遊戲(例如,作爲接口方法的返回值)。此時,您可能需要在新的偏好設置中保留一個標誌,說明您已經轉換了舊的偏好設置。

或者,您可以依賴Android上的Libgdx使用SharedPreferences作爲其後端(請參閱AndroidPreferences.java),並且更直接地將舊偏好轉換爲Libgdx使用的格式。