我的保存:
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
答案 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();