好的,我正在做一个小的乒乓球游戏,我正在为它做一个开始菜单。这就像,你启动游戏,得到一个菜单,你点击播放,然后游戏开始,现在,一切都像我想要的那样工作,除了一件事。当我点击按钮时,所有的东西都被画出来了,球开始运行,所有的东西都正确地更新了,但是,我不能再移动我的球员了。就像KeyListener停止工作一样,我的程序突然停止了对按键的反应。我会给你们我所有的游戏源代码,因为,我很困惑,我不知道是什么导致了它,也不知道如何修复它。我的菜单的工作原理是,当你按下按钮时改变一个布尔值,当布尔值为false时,绘制开始菜单,当布尔值为true时,绘制游戏。好的,因为它有很多代码,我会把它上传到pastebin。
PongWindow.java(包括main) http://pastebin.com/S5CpWW5Q
PongDrawing.java(包括绘图、移动、按键监听、主游戏循环等等) http://pastebin.com/x2LxkkbP
PongPlayer.java(播放器) http://pastebin.com/N8VWTL0P
球(PongBall.java) http://pastebin.com/temGc2Yg
如果你们能弄明白为什么它不再听我的键了,请告诉我,我不知道。
发布于 2011-06-03 22:54:16
这就像是KeyListener停止工作了,
只将关键事件传递给具有焦点的组件。如果你点击一个按钮,那么你的游戏面板就不再有焦点了。你需要使用类似这样的东西:
gamePanel.requestFocusInWindow();
在您的ActionListener代码中。
然而,正确的方法是忘记使用KeyListener,转而使用Key Bindings。
https://stackoverflow.com/questions/6228179
复制相似问题