Libgdx偏好不适用于移动设备

时间:2016-05-31 10:34:44

标签: libgdx

当我在桌面上测试我的游戏时,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());

        }

1 个答案:

答案 0 :(得分:2)

在为首选项赋值后需要调用flush()方法 - 它会导致将数据提交到内存

    pref.putInteger("Score", hud.getScore()).flush();

看看official wiki也是