#java #javafx
Можно ли протестировать в java зажата кнопка или нет, например если я зажму кнопку
W, то k=1, а если отожму то k=0?
Если можно пример.
Вот код моей кнопки:
if (ke.getCode().getName().equals("W")) {
k = 1;
}
switch (k) {
case 1:// W
gc.drawImage(fon, 0, 0, 1280, 720);
koy = koy - SPEED;
gc.setFill(Color.BLACK);
gc.fillOval(kox - 5, koy - 5, kord + 10, kord + 10);
gc.setFill(Color.YELLOWGREEN);
gc.fillOval(kox, koy, kord, kord);
for (int l = 0; l < 26; l++) {
if (koy == prom1[l] - kord) {
koy = koy + 720 + kord;
}
}
break;}
Ответы
Ответ 1
Да можно. Ловите ваш ивент на Scene,Layout-e: setOnKeyPressed() - При ножатии кнопки. setOnKeyReleased() - При отжатии кнопки. А пишите это как то вот так: scene.setOnKeyPressed(event -> { if(event.getCode() == KeyCode.W){ //do_something } scene.setOnKeyReleased(event -> { if(event.getCode() == KeyCode.W){ //do_something } });Ответ 2
Используйте метод setOnKeyPressed. В данном случае будет что-то типо такого: node.setOnKeyPressed(ke - > { switch (ke.getCode()) { case KeyCode.W: gc.drawImage(fon, 0, 0, 1280, 720); koy = koy - SPEED; gc.setFill(Color.BLACK); gc.fillOval(kox - 5, koy - 5, kord + 10, kord + 10); gc.setFill(Color.YELLOWGREEN); gc.fillOval(kox, koy, kord, kord); for (int l = 0; l < 26; l++) { if (koy == prom1[l] - kord) { koy = koy + 720 + kord; } } break; } });
Комментариев нет:
Отправить комментарий