如何恢复首选项libgdx中存储的值



我的保存:

   static final String PREFS_NAME = "ScoreGame";
Preferences preferences;

一个可变温度输出到A类

**Preferences preferences;**
     int tempGameScore = 0;//class B
    int dropsGatchered = 0; 
     **in create**

    preferences =  Gdx.app.getPreferences(Drop.PREFS_NAME);

在游戏场景中,我制作了这个,B类

  if ((raindrop.y < 0) && !(index >= 15)) {
            iter.remove();
            game.tempGameScore = game.dropsGatchered;
            game.preferences.putInteger("score", game.tempGameScore);
            game.preferences.flush();
            game.dropsGatchered = 0;
            stopGame();
        }

C类我得到值并在屏幕上绘制

@Override
public void create() {
    game.tempGameScore = game.preferences.getInteger("score");

}

textFont.draw(game.batch, " " + game.tempGameScore, (Drop.WIDTH / 2) - 55,
                    (Drop.HEIGHT / 2) + 50);

当我关闭应用程序时,我的速度丢失了,我希望她恢复他们的可变游戏。tempGameScore

您的代码和注释似乎是脱节的。你为什么要做一个getInteger("Save"),它与你的putInteger("score")代码不一致。

在create()中,您可以初始化您的首选项,这很好:

game.preferences =  Gdx.app.getPreferences(Drop.PREFS_NAME);

但是你需要排队。它们就像一个hashmap,所以你必须使用相同的密钥。

game.tempGameScore = game.preferences.getInteger("score"); 

稍后,要"保存":

game.preferences.putInteger("score", game.tempGameScore);
game.preferences.flush();

最新更新