Java getKeyCode在keyPressed中仅返回0

多米尼克·西蒙妮(Dominic Simone)

我正在尝试制作一个需要动作的简单游戏。唯一的问题是,当我键入一个键时,每个键都返回一个keyCode'0'。我已经阅读了一些有关Stack Overflow的内容,发现这个问题的所有答案都是使用KeyPressed而不是KeyTyped。唯一的问题是我正在使用KeyPressed,并且所有键仍返回0。

我的KeyListener代码如下:

旁注: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) {}
            });

这很可能是一个简单的解决方案,但是我对这方面的编码不是很有经验。谢谢你的帮助。

马克·托波尼克(Marko Topolnik)

我正在使用KeyPressed,并且所有键仍返回0。

这是keyPressed处理程序的实现

@Override
public void keyPressed(KeyEvent e) {}

看来不言而喻。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章