首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高分排行榜系统问题

高分排行榜系统问题
EN

Stack Overflow用户
提问于 2019-06-07 18:42:19
回答 1查看 69关注 0票数 0

我在android studio上做了一个游戏,用户必须在死前收集尽可能多的点数。我设置了一个排行榜系统,这样如果用户得到一个高分,他们可以输入他们的名字,它将显示在排行榜上。我有一个当用户死亡时出现的gameover屏幕,在这个屏幕上我有一个用于排行榜屏幕的按钮。但唯一的问题是,如果用户获得高分,则必须单击该按钮才能进入排行榜屏幕输入自己的姓名。我想要它,所以如果用户得到一个高分,他会自动进入排行榜屏幕,当他死了,而不是gameover屏幕。

所以我的问题是,有谁知道如何让用户进入排行榜类,如果他们得到一个高分,而不是游戏超过类?

我试着在我的排行榜类中创建一个静态int "m“,并将它放在用户可以放置的第一、第二和第三个位置下,并说如果(score > m)那么转到排行榜屏幕,但我意识到这不会起作用,因为我的m等于1,2和3

我的代码:

排行榜类

代码语言:javascript
复制
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;
}

游戏引擎类

代码语言:javascript
复制
if (lives == 0) {
            gameState = 2;
            GameActivity.end(score);

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

游戏活动类

代码语言:javascript
复制
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(分数);将我带到gameover屏幕,GameActivity.endd(分数);将我带到排行榜屏幕。

我也试着改变他们两个人的位置,但似乎行不通

EN

回答 1

Stack Overflow用户

发布于 2019-06-07 19:05:19

假设其余的都是正确的,你需要修复这个问题:

代码语言:javascript
复制
if (lives == 0) {
            gameState = 2;
            GameActivity.end(score);

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

要这样做:

代码语言:javascript
复制
if (lives == 0) {
            gameState = 2;

            if(score > Leaderboard.m){
                GameActivity.endd(score);
            } else GameActivity.end(score);
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56492781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档