У меня есть программа, предназначенная для имитации движения и всех процессов (движение, рисование новых автомобилей, реагирование на светофоры), кроме отслеживания движения.
Я использовал методы получения
float getXposition(){
return x;
}
float getYposition(){
return y;
}
чтобы определить местоположение моего спрайта, но моя проблема с условиями, связанными с позицией. Например, цикл do while
do {
topcar.setYvelocity((topcar.getYvelocity()/2));
}while(topcar.getYposition() < 275);
всегда обходят стороной.
Метод (ы) обновления
public void update() { // update position and velocity every n milliSec
// default - just move at constant velocity
x += dx; // velocity in x direction
y += dy; // velocity in y direction
}
public void actionPerformed(ActionEvent arg0) {
// called by Timer every 50 milliseconds
for (SimpleSprite s : SimpleSprite.sprites)
s.update(); // update positions of all sprites
repaint();
}
Я хотел сделать так, чтобы, когда индикатор становился красным, автомобильный спрайт замедлялся до половины скорости, пока не достигнет координаты y 275, а затем остановился, но вместо этого мой спрайт внезапно остановился, как только загорится свет красный