如何更新或覆盖 libGdx 中的首选项值

How can I UPDATE or OVERWRITE the value of a preference in libGdx

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

我做的是:

  1. 最初为名为 HighScore 的偏好变量分配了一个值 0,然后对其进行了评论,因此最初它会得到 0。 //preferences.putInteger("HighScore",0);

  2. 然后我想根据这种情况更新首选项,其中 highScore 变量在每个 运行 游戏中初始化为 0,并且当用户玩游戏时,当前分数分配给高分变量。

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

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

第一步显然在实际游戏中行不通。不妨从一开始就把它做好。当您获得首选项值时,您还可以传递默认值(如果尚不存在)。因此,您可以在每次游戏加载时以完全相同的方式执行此操作,包括第一次:

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

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

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