Реализация счетчика жизни, похожего на "Candy Crush" в libgdx - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь реализовать текущий отсчет в libgdx.

Я знаю, что мне нужно сохранять даты и тому подобное в sharedprefs, и я уже написал getter-setter в интерфейсе.Я пытаюсь обдумать алгоритм, но пока безуспешно.

Поэтому, когда пользователь нажимает play:

Date date = new Date(TimeUtils.millis());

editor.setDate("date", date);

Устанавливает первую дату, затем:

Date newDate = new Date(TimeUtils.millis());

newDate = date + 600000; //10 minutes in miliseconds

Сейчас в рендере:

if(newDate - TimeUtils.milis()<=0) {        
    life++;
}  else {
    label.setText(""+newDate-TimeUtils.milis());
}

Что ж.Кажется, все работает, но что, если вторая жизнь потрачена или третья?Кто-нибудь может дать мне несколько советов по этому вопросу.Заранее спасибо.

1 Ответ

0 голосов
/ 01 января 2019

Не совсем понятно, чего вы хотите, но если ваша цель - добавлять жизнь каждые 10 минут, я могу порекомендовать вам следующую логику.Просто посчитайте игровое время в методе рендеринга.

gameTime += dt;
if (gameTime > 600000) {
   life ++;
   gameTime = 0;
}   else
   // smth
}

Там вам не нужно вызывать систему TimeUtils.milis при каждом вызове рендеринга

...