【发布时间】:2022-12-10 16:35:47
【问题描述】:
例如,每次我按下 W 时,我的播放器都会向上移动 20。但是当我按住 W 时,它会向上移动 20,等待一秒钟,然后上升得更快。
是否可以让我的播放器无需等待而立即“快速”上升?
我的代码:
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_W) up = true;
if(e.getKeyCode() == KeyEvent.VK_A) left = true;
if(e.getKeyCode() == KeyEvent.VK_S) down = true;
if(e.getKeyCode() == KeyEvent.VK_D) right = true;
if(up == true){
if(Main.y == -100){
return;
}
Main.y -= 20;
Main.frame.repaint();
}
if(left == true){
if(Main.x == -40){
return;
}
Main.x -= 20;
Main.frame.repaint();
}
if(down == true){
if(Main.y == 440){
return;
}
Main.y += 20;
Main.frame.repaint();
}
if(right == true){
if(Main.x == 520){
return;
}
Main.x += 20;
Main.frame.repaint();
}
}
@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;
}
【问题讨论】:
-
按键绑定和 Swing 定时器