如何在libgdx中创建用户名文件?

时间:2014-05-15 18:19:08

标签: java android libgdx

您好我正在尝试为我的libgdx游戏创建一个高分屏幕。我已经能够为实际的高分自己创建一个本地文件,但我不确定如何创建一个伴随高分的用户名文件。对于高分,我创建了一个带有字节数组的文件,只需按正确的顺序绘制它们。我可以将用户名称作为字符串,但我不知道如何将其保存到文件中,以便我可以轻松地对其进行排序并使用高分数显示它。我唯一能想到的是为每个前5个高分创建一个单独的首选项文件,然后根据需要显示和更改每个高分,但这似乎是浪费。无论如何我可以用前5个名字/字符串创建一个文件并将它们加载到一个数组中并从那里绘制/订购?谢谢。

Numbers.writeBytes(new byte[]{0,0,0,0,0}, false);//This is how I write a file of the top 5 highscores.  An array of bytes.  This is easy to order and display but I cant do this with Strings.  What could I do to achieve the same with Strings/names.  Thanks

1 个答案:

答案 0 :(得分:0)

Libgdx Preferences API提供了一个简单的高级API,用于持久存储高分等数据。它是一个简单的键+值API,因此您只需要为要跟踪的5个(或10个或其他)分数中的每个分数创建“name0”和“score0”等键。

节省5分

// Assumes names is an array of String names, 
// and scores is an array of integer scores.

Preferences prefs = Gdx.app.getPreferences("highscores");
for (int i = 0; i < 5; i++) {
    prefs.putString("name"+i, names[i]);
    prefs.putInteger("score"+i, scores[i]);

}
prefs.flush();

载入5分

Preferences prefs = Gdx.app.getPreferences("highscores");
for (int i = 0; i < 5; i++) {
    names[i] = prefs.getString("name"+i, null);
    scores[i] = prefs.getInteger("score"+i, 0);

}