我先创建布尔类型 看哪个按键被按下
boolean KeyS = false;
boolean KeyA = false;
boolean KeyD = false;
boolean KeyW = false;
然后用if 判断(注意不能用 ifs 因为他们是独立的情况 )
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_S) {
KeyS = true;
}
if (e.getKeyCode() == KeyEvent.VK_W) {
KeyW = true;
}
if (e.getKeyCode() == KeyEvent.VK_A) {
KeyA = true;
}
if (e.getKeyCode() == KeyEvent.VK_D) {
KeyD = true;
}
if (KeyS) {
grey.setDrict(3);
grey.removedown();
}
if (KeyW) {
grey.setDrict(0);
grey.removeup();
}
if (KeyA) {
grey.setDrict(2);
grey.removeleft();
}
if (KeyD) {
grey.setDrict(1);
grey.removeright();
}
if (KeyA && KeyS) {
grey.lowerleft();
}
if (KeyD && KeyS) {
grey.lowerright();
}
if (KeyA && KeyW) {
grey.upperleft();
}
if (KeyW && KeyD) {
grey.upperright();
}
if (e.getKeyCode() == KeyEvent.VK_J) {
grey.shotbullet();
}
this.repaint();
}
@Override
public void keyReleased(KeyEvent e){
if (e.getKeyCode() == KeyEvent.VK_S) {
KeyS = false;
}
if (e.getKeyCode() == KeyEvent.VK_W) {
KeyW = false;
}
if (e.getKeyCode() == KeyEvent.VK_A) {
KeyA = false;
}
if (e.getKeyCode() == KeyEvent.VK_D) {
KeyD = false;
}
}