Я пытаюсь создать функцию, которая создает анимацию в JavaFX прямоугольника, движущегося по прямой линии.У меня есть пара прямоугольников, поэтому я буду вызывать эту функцию пару раз.Я хочу, чтобы моя программа создала, скажем, 3 прямоугольника и переместила их до определенной конечной точки с постоянным промежутком между ними.Но когда один прямоугольник попадает в эту конечную точку, я хочу, чтобы он исчез, а затем снова появился внизу.Единственное решение, которое я придумала, это просто создать их все в одной и той же начальной точке, вызвать эту функцию, подождать некоторое время, а затем снова вызвать эту функцию, создав еще один прямоугольник.Он работает хорошо, но, поскольку он находится внутри функции инициализации, моя программа ждет несколько секунд, когда я его запускаю.Вы знаете какой-нибудь лучший способ?
public void initialize() throws InterruptedException {
animatePlainWave(rect1);
Thread.sleep(1500);
animatePlainWave(rect2);
Thread.sleep(1500);
animatePlainWave(rect3);
Thread.sleep(1500);
animatePlainWave(rect4);
Thread.sleep(1500);
animatePlainWave(rect5);
}
public void animatePlainWave(Node rectangle)
{
TranslateTransition rectangleTransition = new TranslateTransition();
rectangleTransition.setDuration(Duration.seconds(rectangle.getLayoutY()/100));
rectangleTransition.setToY(650-rectangle.getLayoutY());
rectangleTransition.setAutoReverse(false);
rectangleTransition.setCycleCount(TranslateTransition.INDEFINITE);
rectangleTransition.setNode(rectangle);
rectangleTransition.rateProperty().bind(Bindings.divide(1d, mySlider.valueProperty()));
rectangleTransition.play();
}