Уменьшение целого числа каждую секунду - PullRequest
0 голосов
/ 07 декабря 2011

Я использую AndEngine для добавления спрайтов в сцену.

Все спрайты добавляются через интервал времени, которым я могу управлять через класс, который я создал для него.

Например, дляустановить время (в качестве секунды)

Timer timer = new Timer();
timer.setInterval(Float second);

Я создал этот метод, чтобы таймер мог меняться по мере необходимости во время взаимодействия пользователя с игрой.

Таким образом, когда спрайты добавляются в сцену, они перемещаются по оси Y в случайных местах.

У меня есть два интервала, которые они берут, чтобы контролировать максимальную продолжительность и минимальную продолжительность, необходимую для перемещения.по экрану.

Например ...

Private int MaxDurarion = 4;// 4 is equivalent to 4 seconds for this
Private int MinDuration = 2 //Same for minimum duration

У меня есть IUpdateHandler, который предназначен для обновления каждую секунду.

Так что в этом методе я обновляюоценка и другие вещи соответственно.

Теперь проблема заключается в том, чтобы проверить, достиг ли пользователь определенного балла, если он получил, то я хотел бы уменьшить максимальную продолжительность и минимальную продолжительность.

Например ..

if(userScore == MAX){
MaxDuration = MaxDuration - (int).2;
TimerSecond = TimerSecond - .1f;
}

Теперь я попробовал это таким образом, но я обнаружил, что Maxduration возвращается к исходному целому числу после каждого обновления.

Надеюсь, я объяснилэтого достаточно, что я пытаюсь сделать.

Есть ли лучший способ сделать это?

Спасибо, ребята.

Ответы [ 2 ]

2 голосов
/ 07 декабря 2011

Вы преобразуете .2 в int, что, как я считаю, приводит к 0, поэтому вы вообще не меняете MaxDuration.

1 голос
/ 07 декабря 2011

Проблема в том, что (int) 0.2 будет преобразовываться в ноль из-за округления десятичной дроби до целого числа.Так что у Maxduration всегда ничего не вычитается.

...