java项目之——坦克大战13

    xiaoxiao2025-03-21  23

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

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

    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.也有泛型的使用。

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

    转载请注明原文地址: https://ju.6miu.com/read-1297250.html
    最新回复(0)