В настоящее время я делаю игру с типовой скоростью, используя JavaFX, где слова должны падать сверху, и пользователь должен набирать их как можно быстрее, прежде чем упадет снизу. У меня есть базовая настройка игры. Единственное, с чем я борюсь, это как заставить слова падать сверху и идти вниз (в настоящее время они перемещаются снизу вверх). А также я хочу, чтобы несколько слов падали из случайного положения вверху (не в одной и той же точке происхождения) через определенный промежуток времени между ними, скажем, 30 миллисекунд. Код у меня пока такой:
public void showWords() throws InterruptedException
{
int missedWords = 0; // number of words the user failed to type
while (missedWords != 10)
{
dequedWord = queue.dequeue(); // the word that the Text object will contain
Text runWord = new Text(dequedWord);
wordsPane.getChildren().add(runWord); // the canvas in which the words will travel from top to bottom
double PaneHeight = wordsPane.getHeight();
//double PaneWidth = wordsPane.getWidth();
double runWordWidth = runWord.getLayoutBounds().getWidth();
KeyValue initKeyValue = new KeyValue(runWord.translateYProperty(), PaneHeight);
KeyFrame initFrame = new KeyFrame(Duration.ZERO, initKeyValue);
KeyValue endKeyValue = new KeyValue(runWord.translateYProperty(), -1.0 * runWordWidth);
KeyFrame endFrame = new KeyFrame(Duration.seconds(12), endKeyValue);
Timeline timeline = new Timeline(initFrame, endFrame);
timeline.setCycleCount(1);
timeline.play();
// add code to check whether user typed the word in the Text object
missedWords++;
}
}
Я новичок в анимации, поэтому я не знаю много о классах Timeline, KeyValue и KeyFrame. Я пытался читать документацию по API, но мне это сильно не помогло. Любая помощь очень ценится. Спасибо:)