我制作了一个游戏,用户必须在遇到障碍物之前收集尽可能多的星星。他们收集的每一颗星星都会得到1分。当他们整日游玩时,如果他们获得了高分,他们将被带到排行榜屏幕,在这里他们可以填写自己的名字。如果他们死了但没有获得高分,他们将被带到GameOver屏幕。
但是,我遇到的这个问题很奇怪,我将尽我所能尽力解释一下。因此,基本上,我第一次开始玩游戏并玩游戏时,我死后无论是否获得高分,我都会直接进入排行榜屏幕。但是,如果我“再次玩”并且死了并且没有得到高分,那么在将我带到游戏屏幕上的情况下,它仍然可以正常工作。而且无论我“再次播放”多少次,该应用程序都可以正常运行。 但是,如果我在第一次玩游戏时关闭该应用程序并再次启动,则无论得分如何,它都会带我进入排行榜屏幕。我想知道是否有人对为什么会发生这种情况提出建议?
我希望我能解释清楚,我知道这是一个奇怪的错误。任何帮助将不胜感激!
我的代码:
游戏引擎类:
if (lives == 0 ) {
GameActivity.end(score);
}
if (lives == 0 && score > Leaderboard.newScoreTB) {
GameActivity.endd();
}
游戏活动类:
static void end(int score) {
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() {
Context context = AppConstants.gameActivityContext;
Intent intent = new Intent(context, Leaderboard.class);
intent.putExtra("score", AppConstants.score);
context.startActivity(intent);
((Activity) context).finish();
}
排行榜:
score = getIntent().getExtras().getInt("score");
SharedPreferences pref = getSharedPreferences("MyPref",0);
int scoreSP = pref.getInt("scoreSP",0);
SharedPreferences.Editor editor = pref.edit();
int scoreSB = pref.getInt("scoreSB",0);
SharedPreferences.Editor editorr = pref.edit();
int scoreTB = pref.getInt("scoreTB",0);
SharedPreferences.Editor editorrr = pref.edit();