我如何将敌人放入ArrayList

时间:2012-12-28 04:04:56

标签: java arraylist

这是我的两个敌人

en = new Enemy(700, 150);
en2 = new Enemy (980, 150);

我希望我的程序包含几个敌人,我只需重新创建它们并进行单位碰撞

if (d.intersects(r1) && en.visible == true &&
        en.isAlive == false && !p.hitting){
    hitmang(hit);
    p.hitting = true;
}  

if (d.intersects(r2) && en.visible == true &&
        en.isAlive == false && !p.hitting){  
    hitmang(hit);
    p.hitting = true;
}

if (!d.intersects(r1) && !d.intersects(r2)){
    p.hitting = false;
}

我是否必须重新创建我与另一个敌人的每个实例?

这些是我的敌人加上他们在游戏中的界限

Rectangle r1 = en.getBounds();
Rectangle r2 = en2.getBounds();

(我将它们作为矩形)

public Rectangle getBounds(){
    return new Rectangle(x, y, 114, 134);
}

1 个答案:

答案 0 :(得分:0)

我不明白你想要做什么?

你想将你的敌人添加到一个阵列然后循环通过它们来检查敌人的边界框是否与玩家相交?

public List<Rectangle> enBoundingBoxes = new ArrayList<Rectangle>();

然后将敌人的边界框添加到arraylist。

enBoundingBoxes.add(en.getBounds());
enBoundingBoxes.add(en2.getBounds());

使用for循环遍历它们:)

for (int i = 0; i < enBoundingBoxes.size(); i++) {
Rectangle tempBBox = enBoundingBoxes.get(i);

if (d.intersects(tempBBox) && en.visible == true && !en.isAlive == false && !p.hitting) {
    hitmang(hit);
    p.hitting = true;
   }
}

etc etc...

是你所追求的?

祝你好运,希望有所帮助:)

编辑:我没有检查这是否有效,我是在浏览器中写的......