任务
代码
添加按键状态的布尔值
private boolean bU=false,bD=false,bL=false,bR=false;
添加代表方向的量并初始化
enum Direction{U,D,L,R,UL,UR,DL,DR,STOP;};
private Direction dir = Direction.STOP;
根据按键状态确定 Tank 方向,再在 keyPress() 方法下调用该方法
public void locateDirction(){
if(!bD && bU && !bL && !bR) dir = Direction.U;
else if(bD && !bU && !bL && !bR) dir = Direction.D;
else if(!bD && !bU && bL && !bR) dir = Direction.L;
else if(!bD && !bU && !bL && bR) dir = Direction.R;
else if(!bD && bU && bL && !bR) dir = Direction.UL;
else if(!bD && bU && !bL && bR) dir = Direction.UR;
else if(bD && !bU && !bL && bR) dir = Direction.DR;
else if(bD && !bU && bL && !bR) dir = Direction.DL;
else if(!bD && !bU && !bL && !bR) dir = Direction.STOP;
}
进行下一步移动
public void move() {
switch(dir) {
case U: y -=STEPS;break;
case D:y +=STEPS;break;
case L: x -=STEPS;break;
case R:x +=STEPS;break;
case UL:x -=STEPS;y -=STEPS;break;
case UR:x +=STEPS;y -=STEPS;break;
case DR:x +=STEPS;y +=STEPS;break;
case DL:x -=STEPS;y +=STEPS;break;
case STOP:break;
}
}