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

任务

代码
添加 Dirction 类型的炮筒方向

private Direction ptDir = Direction.D;

每次坦克移动后,只要不是 STOP ,炮筒方向随坦克方向一起移动,即在坦克定位方法 locateDirction() 添加

if(this.dir != Direction.STOP)
        this.ptDir = this.dir;

再画出炮筒,增加方法,在 draw() 方法中调用,并传画笔给它

//画出炮筒
    public void drawPt(Graphics g) {
        switch(ptDir) {
        case U:g.drawLine(x + TANK_WIDTH/2, y + TANK_HEIGH/2, x + TANK_WIDTH/2, y);break;
        case D:g.drawLine(x + TANK_WIDTH/2, y + TANK_HEIGH/2, x + TANK_WIDTH/2, y + TANK_HEIGH);break;
        case L:g.drawLine(x + TANK_WIDTH/2, y + TANK_HEIGH/2, x, y + TANK_HEIGH/2);break;
        case R:g.drawLine(x + TANK_WIDTH/2, y + TANK_HEIGH/2, x + TANK_WIDTH, y + TANK_HEIGH/2);break;
        case UL:g.drawLine(x + TANK_WIDTH/2, y + TANK_HEIGH/2, x, y);break;
        case UR:g.drawLine(x + TANK_WIDTH/2, y + TANK_HEIGH/2, x + TANK_WIDTH, y);break;
        case DR:g.drawLine(x + TANK_WIDTH/2, y + TANK_HEIGH/2, x + TANK_WIDTH, y + TANK_HEIGH);break;
        case DL:g.drawLine(x + TANK_WIDTH/2, y + TANK_HEIGH/2, x, y + TANK_HEIGH);break;
        }
    }

最后,fire() 方法中,new 出来的新坦克方向由 dir 改为 ptDir
总结
1.模拟一个炮筒出来,炮筒的方向是上一次移动的方向
2.炮筒方向和坦克方向类似,只是没了 STOP 的值

猜你喜欢

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