Я создаю игру «Змея» и реализовал класс 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
KeyListener не работает так, как я хочу, для клавиш со стрелками? ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1727808648
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) {
}
Подробнее здесь: [url]https://stackoverflow.com/questions/46062849/keylistener-not-working-the-way-i-want-it-to-for-arrow-keys[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия