高分排行榜系统问题

时间:2019-06-07 10:42:19

标签: java leaderboard

我在android studio上做了一个游戏,用户必须在死之前收集尽可能多的分数。我已经建立了排行榜系统,因此如果用户获得高分,他们可以输入自己的姓名并将其显示在排行榜上。我有一个Gameover屏幕,当用户死亡时会出现,在该屏幕上,我有一个排行榜屏幕的按钮。但是唯一的问题是,如果用户获得高分,则必须单击该按钮进入排行榜屏幕以输入其名称。我希望这样,如果用户获得高分,他死后会自动进入排行榜屏幕,而不是游戏结束屏幕。

所以我的问题是,如果有人获得高分而不是过度游戏,是否有人会如何使用户进入排行榜?

我尝试在排行榜类中创建一个静态int“ m”,并将其放置在用户可以放置的第一,第二和第三位置的每个下方,并说(分数> m)然后进入排行榜屏幕,但我意识到这行不通,因为我的m等于1,2和3

我的代码:

排行榜类

if(score > scoreSP){
            scoreTB = scoreSB;
            scoreSB = scoreSP;
            editorr.putInt("scoreSB", scoreSB);
            editorrr.putInt("scoreTB", scoreTB);
            scoreSP = score;
            editor.putInt("scoreSP", scoreSP);
            editor.commit();
            editorr.commit();
            editorrr.commit();
            scoreName = 1;
            m = 1;

 }else
        if(score > scoreSB && score <= scoreSP){
            scoreTB = scoreSB;
            editorrr.putInt("scoreTB", scoreTB);
            scoreSB = score;
            editorr.putInt("scoreSB", scoreSB);
            editorr.commit();
            editorrr.commit();
            scoreName = 2;
            m =2;

  }else
        if(score <= scoreSB && score > scoreTB){
            scoreTB = score;
            editorrr.putInt("scoreTB", scoreTB);
            editorrr.commit();
            scoreName = 3;
            m = 3;
}

游戏引擎类

if (lives == 0) {
            gameState = 2;
            GameActivity.end(score);

            if(score > Leaderboard.m){
                GameActivity.endd(score);
            }
        }

游戏活动类

static void end(int score){
    AppConstants.firstLeaderboard = true;
    Context context = AppConstants.gameActivityContext;
    Intent intent = new Intent(context, GameOver.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
    AppConstants.score = score;
    context.startActivity(intent);
    ((Activity) context).finish();
}
static void endd(int score){
    Context context = AppConstants.gameActivityContext;
    Intent intent = new Intent(context, Leaderboard.class);
    intent.putExtra("score", AppConstants.score);
    context.startActivity(intent);
    ((Activity) context).finish();
}

GameActivity.end(score);带我到游戏结束画面和GameActivity.endd(score);带我进入排行榜屏幕。

我也尝试过更改它们两个的位置,但这似乎不起作用

1 个答案:

答案 0 :(得分:0)

假设其余内容正确,则需要解决此问题:

07-Jun-2019 12:30:51.823 INFORMACIÓN [RMI TCP Connection(3)-127.0.0.1] org.omnifaces.ApplicationInitializer.logOmniFacesVersion Using OmniFaces version 2.7.1

对此:

if (lives == 0) {
            gameState = 2;
            GameActivity.end(score);

            if(score > Leaderboard.m){
                GameActivity.endd(score);
            }
        }