java项目之——坦克大战13

上一版本设置了炮筒,使得坦克静止时也可以打出炮弹。但是还有 一个小问题,每次只能打出一发子弹,子弹会被覆盖。

本版本:使坦克可以打出多发子弹。


1.我们用什么来制造多发子弹:集合or 数组   这里选择集合。

List<Missile> missiles = new ArrayList<Missile>();     //泛型  删加 效率相对高

2.画方法中画出多个子弹,在发射类中增加子弹

g.drawString("missiles count:"+missiles.size(), 10,50);
	    for (int i = 0; i < missiles.size(); i++) {
			Missile m = missiles.get(i);
			m.draw(g);
		}

public Missile fire(){
		int x=this.x+Tank.WIDTH/2-Missile.HEIGHT/2;
		int y=this.y-Missile.WIDTH/2+Tank.HEIGHT/2;
		Missile m = new Missile(x, y, ptDir);
		tc.missiles.add(m);                               //增加
		return m;
	}

3.抬起时发射子弹fire()

public void keyReleased(KeyEvent e) {
	   int key = e.getKeyCode();
	    switch(key){
	    case KeyEvent.VK_CONTROL:  fire();  break;  //避免坦克发射子弹过快
		case KeyEvent.VK_LEFT:  bL=false;  break;
		case KeyEvent.VK_UP:    bU=false;  break;
		case KeyEvent.VK_RIGHT: bR=false;  break;
		case KeyEvent.VK_DOWN:  bD=false;  break;
		}
		locateDirection();

	}

总结:打出多发子弹使用了集合,arrayList.也有泛型的使用。

下一个版本:坦克和炮弹出界应该考虑的问题。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值