У меня возникла небольшая проблема при разработке игры. Я пытаюсь создать «колебание» для моей сущности: она движется вперед на 0,5 с, затем назад на 0,25 с, затем вперед на 0,5 с. , , пока он не пройдет другую сторону экрана.
Мои сущности "двигаются" благодаря моей функции обновления (double dt).
@Override
public void update(double dt)
{
super.update(dt);
if(direction == 0)
x -= dt * vx;
else x += dt * vx;
this.imgView.setX(x);
this.imgView.setY(y);
}
Я попытался создать еще 2 темы в своей функции обновления, но пока я ждал, она не работает:
@Override
public void update(double dt)
{
super.update(dt);
Timer t = new Timer();
Timer t2 = new Timer();
synchronized (t2)
{
t.schedule(new TimerTask() {
@Override
public void run() {
if(direction == 0)
x -= dt * vx;
else x += dt * vx;
try {
Thread.sleep(250);
} catch (InterruptedException e) {
System.out.println("InterruptedException Exception" + e.getMessage());
}
}
}, 0, 500);
}
synchronized (t)
{
t2.schedule(new TimerTask() {
@Override
public void run() {
if(direction == 0)
x += dt * vx;
else x -= dt * vx;
try {
Thread.sleep(500);
} catch (InterruptedException e) {
System.out.println("InterruptedException Exception" + e.getMessage());
}
}
}, 0, 250);
}
this.imgView.setX(x);
this.imgView.setY(y);
}
У меня нет ошибок с этим код, но, на мой взгляд, потоки работают плохо, потому что он только идет вперед, а затем назад.
Заранее извините за мой Engli sh, я не очень хорошо говорю ... Заранее спасибо за ваша помощь!