Опитвам се да направя проста игра, която изисква движение. Единственият проблем е, че когато въвеждам ключ, всеки ключ връща keyCode от '0'. Прочетох малко около Stack Overflow и всички отговори, които намерих на моя въпрос, бяха да използвам KeyPressed вместо KeyTyped. Единственият проблем е, че използвам KeyPressed и всички клавиши все още връщат 0.
Моят код на KeyListener по-долу:
Sidenote: print(bool) = System.out.print(bool), беше ми писнало да пиша всичко.
frame.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_W) {up = true; print(up);}
if(e.getKeyCode() == KeyEvent.VK_A) {left = true; print(left);}
if(e.getKeyCode() == KeyEvent.VK_S) {down = true; print(down);}
if(e.getKeyCode() == KeyEvent.VK_D) {right = true; print(right);}
System.out.println("Pressed " + e.getKeyCode());
}
@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_W) {up = false;}
if(e.getKeyCode() == KeyEvent.VK_A) {left = false;}
if(e.getKeyCode() == KeyEvent.VK_S) {down = false;}
if(e.getKeyCode() == KeyEvent.VK_D) {right = false;}
//System.out.println("Released " + e.getKeyChar());
}
@Override
public void keyPressed(KeyEvent e) {}
});
Това най-вероятно ще бъде лесно решение, но нямам много опит в тази област на кодиране. Благодаря за всяка помощ.
keyPressed()
. Копирайте кода си отkeyTyped()
там и вижте какво ще се случи. - person Dragondraikk   schedule 05.08.2015