Dan*_*iel 3 android sd-card preferences libgdx
所以我构建了一个如下所示的类SaveAndLoad:
public class SaveAndLoad {
public Preferences pref;
public final String path = "Highscore";
public SaveAndLoad() {
pref = Gdx.app.getPreferences("Gametitle");
}
public void saveInt(int value) {
pref.putInteger(path, value);
pref.flush();
}
public int getInt() {
return pref.getInteger(path);
}
}
Run Code Online (Sandbox Code Playgroud)
当我试图保存我的高分时,我打电话saveInt(highscore),当你再次打开游戏时,我打电话getInt.
constructor(){
SaveAndLoad sdRemote = new SaveAndLoad ();
try {
highscore = sdRemote.getInt();
} catch (NullPointerException e) {
highscore = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是当我在早期游戏之后再次开始游戏时,高分不加载,它返回零...
我已经完成了明确许可:
谢谢///丹尼尔
PS.在最后一个答案中,我说它适用于某些设备,但我后来发现并非如此.
确保检索这样的数据:
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
int silent = settings.getInt("score", 0);
Run Code Online (Sandbox Code Playgroud)
并保存如下:
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("score", playerScore);
// Commit the edits!
editor.commit(); //<----------
Run Code Online (Sandbox Code Playgroud)
编辑:
啊,你在使用GDX.在这种情况下,请确保在GDX初始化后初始化此类.检查是否Gdx.app.getPreferences("Game");返回null.
EDIT2:
好的,所以我们已经确认Gdx在某些设备上存在问题(这很糟糕).
如果你真的需要在桌面设备和Android设备上使用它,还有另一种方法.如果你只是想让你的游戏在Android上工作,你就不应该使用Gdx来保存数据.
我建议你使用一种称为GDX Android界面的东西.这样您就可以使用本答案中使用的原生Android调用自行处理在Android设备上保存数据.这不是很容易,但这里有一个教程:
https://code.google.com/p/libgdx-users/wiki/IntegratingAndroidNativeUiElements3TierProjectSetup
| 归档时间: |
|
| 查看次数: |
1598 次 |
| 最近记录: |