Как я могу отслеживать движение моего спрайта? - PullRequest
1 голос
/ 03 мая 2019

У меня есть программа, предназначенная для имитации движения и всех процессов (движение, рисование новых автомобилей, реагирование на светофоры), кроме отслеживания движения.

Я использовал методы получения

    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, а затем остановился, но вместо этого мой спрайт внезапно остановился, как только загорится свет красный

...