我正在尝试制作一款需要移动的简单游戏。唯一的问题是当我键入一个键时,每个键都返回一个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) {}
});
这很可能是一个简单的解决方案,但我对这个编码领域并不十分熟悉。谢谢你的帮助。
答案 0 :(得分:0)
我正在使用KeyPressed,并且所有键仍然返回0。
这是keyPressed
处理程序的实现:
@Override
public void keyPressed(KeyEvent e) {}
似乎不言自明。