如何在libGdx中更新或重写首选项的值



我是android开发的新手,如果用户超过了历史最高分数,我希望在我的偏好中覆盖我的高分变量的值。这就像一个偏好,它将存储用户的历史最高分数,如果用户超过该特定的高分,它将被更新。

我所做的是:

  1. 最初为我的首选变量HighScore分配了一个值0,然后对其进行了注释,因此最初它将得到0。//preferences.putInteger("HighScore",0);

  2. 然后,我想根据这个条件更新偏好,其中highScore变量在每次运行游戏时初始化为0,并且当用户玩游戏时,当前分数被分配给highScore。

if(preferences.getInteger("HighScore")<highScore){preferences.putInteger("HighScore",highScore)}

  1. 当我记录值时,即使在条件为true之后,首选项的值仍然不会更新

第一步显然在实际游戏中不起作用。不妨从一开始就做好。当您获得一个首选项值时,如果它还不存在,您还可以传递默认值。所以,每次加载游戏时,你都可以用完全相同的方式来完成,包括第一次:

int highScore = preferences.getInteger("HighScore", 0);

在首选项中放入值后,必须调用flush()才能将其实际保存到磁盘。

if (preferences.getInteger("HighScore", 0) < highScore) { 
preferences.putInteger("HighScore", highScore);
preferences.flush();
}

最新更新