要达到的目的是敌方坦克第一次生成5个坦克,当敌方坦克数量小于或等于3时,再增加5辆,直到把定义的坦克数全都显示完毕,以至于屏幕不会很拥挤。现在只能一下子实例化所有的坦克。求教方法,以下是部分相关代码。没有问题,现在就是想实现那个功能//主类
public static int enemyNum=11;List<Tank> enemyTanks =new CopyOnWriteArrayList<Tank>();//敌方坦克群for(int i=0;i<enemyNum;i++)
        {
         enemyTanks.add(new Tank(50+(i+1)*42+20,20 ,30,30, 100, false, this));
        }for(Tank tank:enemyTanks)//敌方坦克绘制
{
tank.draw(g2);
  }
//坦克类
public Tank(int x, int y,int tankw, int tankh,int life,boolean good,TankClient tc) {
super();//tank的构造方法,传递对象
this.x = x;
this.y = y;
this.tankw = tankw;
this.tankh = tankh;
this.life=life;
this.good=good;
this.tc=tc;
public void draw (Graphics g)//画出坦克
{
//坦克死亡就不用画了
if(!isLive)
{
if(!isGood())
{
tc.enemyTanks.remove(this);
return;
}
}

if(imageOne)
{
readImage("image/tankU.gif");
imageOne=false;
    }
  
g.drawImage(image, x, y,tankw,tankh, tc.getPanel());
move();
}

解决方案 »

  1.   

    加一个boolean appeared=false不出场,如果不出场,就不参与对它任何活动,等检查坦克数量决定要出坦克的时候再让它出场
      

  2.   

    新建个线程 里面while循环检查条件。达到条件就new 就可以了。 这里的条件的 tank数量小于等于3且未达到最大值
      

  3.   

    在主类线程中判断存活坦克数量,达到条件后enemyTanks.add(new Tank(50+(i+1)*42+20,20 ,30,30, 100, false, this));就好了。