Как использовать Keylistener в апплете Java с помощью клавиш со стрелками
Я пытаюсь создать простую игру в Java-апплете, и мне нужно, чтобы мой персонаж двигался (в четырех направлениях), используя либо клавиши со стрелками, либо wasd (либо должен работать). Я не смог использовать стрелки, поэтому я попробовал это, который использует заглавные буквы WASD:
public void keyPressed(KeyEvent e) {
char c = e.getKeyChar();
if ( (c == KeyEvent.VK_W) || (c == KeyEvent.VK_A) || (c == KeyEvent.VK_S) || (c == KeyEvent.VK_D) )
{
setboard();
}
}
Это работает именно так, как я хочу, но утомительно, когда я запускаю программу, приходится включать заглавные буквы.
Как я могу изменить эту программу, чтобы KeyListener мог распознавать строчные буквы и клавиши со стрелками? VK_UP, VK_DOWN, VK_w, VK_a и т. Д. Не работает.
2 ответа
Чтобы использовать стрелки, вам нужно использовать getKeyCode()
, который возвращает int. Это также решит проблему с заглавными буквами. Как это:
int code = e.getKeyCode();
if (code == KeyEvent.VK_W) {
//do stuff
//repeat with VK_A, VK_S, and VK_D
}
В любом случае все константы KeyEvent - это вставки под капотом.
Вы можете преобразовать символ в верхний регистр перед сравнением, поэтому не имеет значения, верхний или нижний регистр:
char c = Character.toUpperCase(e.getKeyChar());