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

任务

代码
首先得确定,炮弹是否击中坦克,肯定就要比较炮弹的矩形范围和坦克的矩形范围,借助 Rectangle 实现
在 Missile 类中:

//获得子弹的矩形区域
    public Rectangle getRect() {
        return new Rectangle(x,y,MISSILE_WIDTH,MISSILE_HEIGH);
    }

    //判断是否击中坦克
    public boolean hitTank(Tank t) {
        if(this.getRect().intersects(t.getRect()) && t.isLive()) {
            t.setLive(false); //当被击中,坦克死去
            this.live = false; //子弹也死去
            return true;
        }
        return false;
    }

在 Tank 类中也加一个

//获得坦克的矩形区域
    public Rectangle getRect() {
        return new Rectangle(x,y,TANK_WIDTH,TANK_HEIGH);
    }

同时定义确定坦克是否还活着的 live 布尔变量、和其相应的 set/get 方法

private boolean live = true;
public boolean isLive() {
        return live;
    }

    public void setLive(boolean live) {
        this.live = live;
    }

重构 draw() 方法,当子弹和坦克 live 值为 false ,直接不画
最后 paint() 方法,调用 getRect() 方法,判断子弹与坦克的情况

猜你喜欢

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