Java.坦克大战小游戏【0.8】

任务

代码
添加按键状态的布尔值

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;
        }
    }

猜你喜欢

转载自blog.csdn.net/liyuanyue2017/article/details/80241979