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

时间:2016-08-02 18:00:05

标签: java android libgdx

我的保存:

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

一个变量temp 输出到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

1 个答案:

答案 0 :(得分:0)

您的代码和评论似乎脱节了。你为什么要做一个getInteger(&#34; Save&#34;),它没有与你的putInteger代码对齐(&#34;得分&#34;)。

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

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

但你的获得/投入需要排队。它们的工作方式类似于hashmap,因此您必须使用相同的密钥。

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

然后到&#34;保存&#34;:

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