KeyListener не работает так, как я хочу, для клавиш со стрелками?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 KeyListener не работает так, как я хочу, для клавиш со стрелками?

Сообщение Anonymous »

Я создаю игру «Змея» и реализовал класс KeyListener, который слушает, когда пользователь нажимает клавиши со стрелками или клавиши WASD.

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

Кроме того, клавиши WASD работают иначе, чем клавиши со стрелками. Когда я нажимаю клавишу WASD, змея перемещается только на один блок, а затем останавливается, в отличие от клавиш со стрелками, где змея движется, пока я удерживаю клавиши со стрелками. Как заставить клавиши WASD работать так же, как клавиши со стрелками?

Вот код:

public void keyTyped(KeyEvent e) {
}

public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_LEFT || e.getKeyCode() == KeyEvent.VK_A) {
out.println("Left key pressed");
// handle snake left movement
} else if (e.getKeyCode() == KeyEvent.VK_RIGHT || e.getKeyCode() == KeyEvent.VK_D) {
out.println("Right key pressed");
// handle snake right movement
} else if (e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_W) {
out.println("Up key pressed");
// handle snake up movement
} else if (e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_S) {
out.println("Down key pressed");
// handle snake down movement
}
}

public void keyReleased(KeyEvent e) {
}


Подробнее здесь: https://stackoverflow.com/questions/460 ... arrow-keys
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как прокручивать с помощью клавиш со стрелками
    Гость » » в форуме CSS
    0 Ответы
    67 Просмотры
    Последнее сообщение Гость
  • Отключение клавиш со стрелками в JavaScript при использовании onKeyUp
    Anonymous » » в форуме Php
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Отключение клавиш со стрелками в JavaScript при использовании onKeyUp
    Anonymous » » в форуме Jquery
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Python tkinter – обнаружение клавиш со стрелками при нажатии альтернативной клавиши
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Python tkinter – обнаружение клавиш со стрелками при нажатии альтернативной клавиши
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»