Я сейчас разрабатываю игру Tower Defense для университетского проекта.На более высоких волнах сотни врагов движутся вокруг.Моя проблема в том, что он чувствует себя очень некомфортно, когда более 300 врагов двигаются одновременно.Каждый враг - это ребенок Панели, которая отображается в моей сцене.
В моем классе EnemyGraphics есть метод, который обновляет позицию, вызывая метод update:
public class EnemyGraphics extends ImageView implements EventObserver {
...
@Override
public void update() {
Platform.runLater(() -> {
relocate(enemy.getxCoordinate(), enemy.getyCoordinate());
});
}
}
Я предполагаю, что это становится запаздывающим, потому что каждый враг обновляет свое местоположение каждый раз, когда он перемещается, вызывая update ().
Есть ли способ, которым я могу установить новые координаты для моего объекта ImageView, не перерисовывая сцену и в основном FX-Thread создавая таймер, который перерисовывает всю сцену через определенный интервал?Или есть другое решение / метод, который я могу вызвать для качественного перемещения изображений по панели?