对于游戏,我使用 KeyListener
来了解何时按下某个键。
public synchronized void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
keyRightIsDown = true;
}
}
public synchronized void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
keyRightIsDown = false;
}
}
这有效率为 99.9%。但有时(通常足够),当释放按键时,不会调用 keyReleased
(导致游戏角色继续向右移动 - 再次按下该键可以解决问题)。
[也许相关:]我使用 OSX 10.6,并且经常安静地同时按下多个键。
如何才能 100% 完成这项工作?
最佳答案
也许看看KeyBindings会更好,可以轻松为关键操作构建Listener
,如 KeyListener
关于Java Swing - 按下的键未释放(有时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6731686/