我在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);带我进入排行榜屏幕。
我也尝试过更改它们两个的位置,但这似乎不起作用
答案 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);
}
}