Я использую этот TimerHandler в andEngine для порождения спрайтов в определенные моменты времени.
mScene.registerUpdateHandler(new TimerHandler(0.02f, true, new ITimerCallback() {
@Override
public void onTimePassed(TimerHandler pTimerHandler) {
addSpriteTime1 += 2; // because timer update = 0.02 seconds
if (addSpriteTime1 == nextSprite1Time) {
addFace();
addSpriteTime1 = 0;
}
addSpriteTime2 += 2;
if (addSpriteTime2 == nextSprite2Time) {
addFace2();
addSpriteTime2 = 0;
}
addSpriteTime3 += 2;
if (addSpriteTime3 == nextSprite3Time) {
addFace3();
addSpriteTime3 = 0;
}
}
}));
Теперь у меня есть переменные типа int, объявленные на уровне класса ..
private int nextSprite1Time = 100;// initial value, could be changed during game
private int nextSprite2Time = 100;
private int nextSprite3Time = 100;
У меня тогда естьметод, который позволяет мне изменить скорость или nextSpriteTimes.
private void speed(int f, int g, int h){
this.nextSprite1Time = f;
this.nextSprite2Time = g;
this.nextSprite3Time = h;
Log.e("Time Changed", String.valueOf(this.nextSprite1Time+ "," + this.nextSprite2Time + ","+ this.nextSprite3Time));
}
Проблема заключается в том, когда я пытаюсь изменить скорость, например ..
speed(30, 50, 70);
Это просто останавливает все вместеи теперь добавляются спрайты,
Кто-нибудь видит, где я иду с этим неправильно или может сделать это по-другому?