敌方的坦克灵活走位(17)

因为是单机版,所以敌人的坦克是可以随机方向移动的。如何实现,请看代码:
if(this.group == Group.BAD) {//敌人的坦克才随机发射子弹
if (random.nextInt(100) > 92) this.fire();
//敌人的坦克随机方向移动 方向变化太频繁 需要优化 改为只有百分之十的几率变方向
if (random.nextInt(100) > 90) randomDir();
}
private void randomDir(){
//Dir.values()获取方向的数组,我们只要随机一个数传递给这个数组,就是可以获取随机的方向。
this.dir= Dir.values()[random.nextInt(4)];
}
爆炸的位置不对,应该在敌人坦克的中心位置爆炸,调整代码:
public void collidewith(Tank tank) {
if(this.group == tank.getGroup()) return;//如果当前的子弹跟坦克是一个组的就不碰撞检测。
Rectangle rect1 = new Rectangle(this.x, this.y, WIDTH, HEIGHT);
Rectangle rect2 = new Rectangle(tank.getX(), tank.getY(), Tank.WIDTH, Tank.HEIGHT);
if (rect1.intersects(rect2)) {
tank.die();
this.die();
int ex = tank.getX() + Tank.WIDTH / 2 - Explode.WIDTH / 2;
int ey = tank.getY() + Tank.HEIGHT / 2 - Explode.HEIGHT / 2;
tankFrame.explodes.add(new Explode(ex,ey,tankFrame));
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值