我目前正在开发一款小游戏。我使用getKeyCode
移动我的角色,但事实是,如果按住按钮,我不希望你能够继续移动。无论如何我可以使用getKeyCode
仅在第一次点击时注册然后不会注册,直到我释放按钮然后再次按下?
else if (event.getKeyCode()== KeyEvent.VK_UP)
{
spelare1.setLocation(spelare1.getX(),spelare1.getY()-50);
}
这就是它目前的样子。
答案 0 :(得分:0)
我认为你让KeyEvents感到困惑。 VK_UP
是向上箭头键。使用KeyEvent.KEY_RELEASED
对已发布的密钥做出反应。
答案 1 :(得分:0)
您可以保留一个布尔值,指示当前是否按下了该键。然后你可以在每次按下后做出反应,如下例所示:
public static void main(String[] args) {
JFrame f = new JFrame();
f.addKeyListener(new KeyAdapter() {
private boolean pressed;
@Override
public void keyReleased(KeyEvent e) {
pressed = false;
}
@Override
public void keyPressed(KeyEvent e) {
if (!pressed) {
System.out.println("Key pressed: " + e.getKeyCode());
pressed = true;
}
}
});
SwingUtilities.invokeLater(new Runnable() {
public void run() {
f.setVisible(true);
}
});
}
根据您的需要,您可能希望为每个键设置一个单独的状态,或者只是一个共享状态。