如何在libgdx中实现排行榜 - 玩家姓名和分数

时间:2018-02-13 18:42:41

标签: java libgdx desktop preferences leaderboard

我正在创建一个游戏,我正在尝试创建一个排行榜。在我的游戏结束之前,我做了它,以便显示所有游戏的高分。 现在我正在尝试创建一个排行榜,而其中包含用户名和分数。 我想使用偏好来这样做。

我最初尝试通过创建获取用户名的方法来获取用户名。但后来我尝试将它与用户得到的分数结合起来,但它不起作用。

if (Score > highscore) {
        prefs.putInteger ("highscore", Score);
        prefs.flush();
    }

这是我的高分的代码 - 我如何更改我的代码,以便我可以获得两个高分的附加用户名。

1 个答案:

答案 0 :(得分:0)

为了实现您想要做的事情,我认为让对象序列化/反序列化到本地文件文件夹更容易,我会给你一个例子,你必须调整它以适应一个分数列表,我会把它留给你。

public class SaveUtils {
    private static Json serializer = new Json();

    public static ScoreObject loadScore(){
        FileHandle fhp = Gdx.files.local("saves/score.json");
        if(fhp.exists()){
            String scoreStr = fhp.readString();
            ScoreObject score= serializer.fromJson(ScoreObject.class,scoreStr );
            return score;
        }
        return new ScoreObject();
    }

    public static void scoreSave(ScoreObject score) {
        String scoreStr = serializer.toJson(score.getConfig());
        FileHandle fhp = Gdx.files.local("saves/score.json");
        fhp.writeString(scoreStr ,false,"UTF-8");
    }
}