2013-04-23 62 views

回答

4

這簡直太簡單了!您可以使用Preferences。您可以將值存儲在首選項中。在Android上,後端使用Android本身的SharedPreferences。在桌面上,它保存爲用戶文件夾中某處的xml。
我寫了一個簡單的助手來保存選項並獲得我的遊戲選項。這裏有一些代碼。 (注意,不要忘記在保存之後刷新)

public class PreferencesHelper { 
    public final static String PREF_NAME_OPTION = "options"; 
    private final static String VOLUMEN = "volumen"; 
    private final static String VIBRATE = "vibrate"; 
    private final static String EFFECT_VOLUMEN = "effect"; 
    private final static String FIRST_START = "start"; 
    private Preferences optionPref = Gdx.app.getPreferences(PREF_NAME_OPTION);; 

    public PreferencesHelper() { 
     optionPref = Gdx.app.getPreferences(PREF_NAME_OPTION); 
    } 

    public float getVolumen() { 
     return optionPref.getFloat(VOLUMEN); 
    } 

    public void setVolumen(float vol) { 
     optionPref.putFloat(VOLUMEN, vol); 
     optionPref.flush(); 
    } 

    public boolean getVibrate() { 
     return optionPref.getBoolean(VIBRATE); 
    } 

    public void setVibrate(boolean vibr) { 
     optionPref.putBoolean(VIBRATE, vibr); 
     optionPref.flush(); 
    } 

    public float getEffectVolumen() { 
     return optionPref.getFloat(EFFECT_VOLUMEN); 
    } 

    public void setEffectVolumen(float eff) { 
     optionPref.putFloat(EFFECT_VOLUMEN, eff); 
     optionPref.flush(); 
    } 
} 

這是我如何保存我的選項。要保存一個角色,你可以做同樣的事情,但要保存所有需要的重要資料,以便在再次加載遊戲時重新創建角色。你也可以有多個prefrerence!

我希望這有助於。

+0

好吧,這是有道理的。因此,當應用程序被終止並重新創建時,我假定您檢查savedInstanceState Bundle是否爲空,並將該信息傳遞給ApplicationListener以確定是否從Preferences中加載遊戲狀態? – 2013-04-23 07:48:30

+0

我其實不關心saveInstanceBundle,也不知道我是否可以在libgdx中捕獲它。可能不會。如果它被殺死了,它就會被創建,並且我從Preferences中獲得狀態作爲正常開始。如同你從普通的android中知道的那樣,或多或少有像Main活動那樣的不同的方法,如create(),resume()stop()。它內部的核心項目和擴展遊戲,實際上是一個ApplicationListener它確實有回調,如果我得到的權利。 http://libgdx.l33tlabs.org/docs/api/com/badlogic/gdx/Game.html。但這是保存字符狀態的正常方法,e – BennX 2013-04-23 11:48:54

+0

沒問題,謝謝,但這並不能真正回答我的問題。 – 2013-04-23 12:43:43

相關問題