当我在桌面上测试我的游戏时,prefs工作得很好,并且输出正确的分数和高分,但是当我在移动设备上运行它时,值不会保存,并且两个分数都显示为0.也没有错误。只需要一些帮助来尝试解决这个问题。谢谢亚历克斯。
pref = Gdx.app.getPreferences("Scores");
if(pref.contains("Score") == false) {
pref.putInteger("Score", 0);
if(pref.contains("HighScore") == false){
pref.putInteger("HighScore", 0);
}
}
GameOver Screen
pref = Gdx.app.getPreferences("Scores");
score = pref.getInteger("Score");
highScore = pref.getInteger("HighScore");
if(score > highScore){
pref.putInteger("HighScore", score);
highScore = score;
}
这是在玩家死亡时运行的。
public void updateScore(){
if (pref.contains("Score") == true){
}
pref.putInteger("Score", hud.getScore());
}
答案 0 :(得分:2)
在为首选项赋值后需要调用flush()
方法 - 它会导致将数据提交到内存
pref.putInteger("Score", hud.getScore()).flush();
看看official wiki也是