JavaFX ActionEvent e активируется только один раз - PullRequest
0 голосов
/ 13 мая 2018

В настоящее время я пытаюсь создать программу JavaFX, которая перемещает изображение вверх с помощью клавиши ВВЕРХ, но это работает только один раз после моего первоначального нажатия клавиши. Ничего после первого не сработало бы.

game.setOnKeyPressed(e->begin()); 

public void begin() {
    birdView.setTranslateY(birdView.getTranslateX() - 100);
}

1 Ответ

0 голосов
/ 13 мая 2018

Если у вас есть несколько Nodes в сцене, убедитесь, что все узлы, кроме birdView, имеют свойство focusTraversable, установленное на false

focusTraversable="false"

Кроме того, вы не записываете обновленное TranslateX состояние birdView в любой переменной. Сохраните обновленный TranslateX в некоторой переменной и увеличьте его при следующем событии нажатия клавиши

private double x = 0; //instance variable

game.setOnKeyPressed(e->begin()); 

public void begin() {
    x += birdView.getTranslateX()-100;   
    birdView.setTranslateY(x);
}
...