Проблема с классом таблицы лидеров - PullRequest
0 голосов
/ 03 июля 2019

Я сделал игру, в которой пользователь должен собрать как можно больше звезд, чтобы попасть под препятствие.Каждая звезда, которую они собирают, получает 1 очко.Когда у них наступит день и если они получат Рекорд, они будут выведены на экран таблицы лидеров, где они смогут заполнить свое имя.И если они умрут, но не получат рекорд, их просто выведут на экран GameOver.

Но у меня странная проблема, и я постараюсь объяснить ее как можно лучше.В общем, в первый раз, когда я запускаю игру и играю в нее, когда я умираю, я сразу иду к экрану таблицы лидеров, независимо от того, высокий ли это результат или нет.Но если я «играю снова» и умру и не получу высокий балл, это прекрасно работает там, где меня просто выведут на экран «Игра поверх».И независимо от того, сколько раз я "Play Again", приложение работает нормально.Но если я закрою приложение и запустлю его снова в самый первый раз, когда играю в игру, оно выведет меня на экран таблицы лидеров, независимо от счета.Мне интересно, есть ли у кого-нибудь и есть предложения, почему это может происходить?

Надеюсь, я объяснил, что ясно знаю, что это странная ошибка.Буду признателен за любую помощь!

Мой код:

Класс игрового движка:

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();
...