#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; } });
Комментариев нет:
Отправить комментарий