我正在创建一个侧滚动游戏,当前我按箭头键时,角色移动,暂停然后无限移动直到释放该键。
暂停来自带有按键延迟功能的Windows配置,因此,如果按住按键太长,则不会意外输入重复按键。
我想知道是否有办法摆脱这种情况。
这是我的按键代码:
public void keyReleased(KeyEvent ke){}
public void keyTyped(KeyEvent ke){}
public void keyPressed(KeyEvent ke){
int code = ke.getKeyCode();
if(code == KeyEvent.VK_UP){
if(playerY > 0){
playerY-=speed;
repaint();
}
}
else if(code == KeyEvent.VK_DOWN){
if(playerY < 600){
playerY+=speed;
repaint();
}
}
else if(code == KeyEvent.VK_RIGHT){
if(playerX < 800){
playerX+=speed;
repaint();
}
}
else if(code == KeyEvent.VK_LEFT){
if(playerX > 0){
playerX-=speed;
System.out.println(playerX);
repaint();
}
}
}
答案 0 :(得分:1)
按下该键时,您应设置一些变量来确定移动。在KeyReleased上你取消设置这个变量。
如何处理它以调用方法,例如moveLeft(),并在循环中检查此变量。在KeyReleased上,当你重新定义它时,循环结束。