1

これらは私の2つの敵です

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);
}
4

1 に答える 1

0

私はあなたが何をしようとしているのか正確に理解していませんか?

敵を配列に追加してから、それらを循環して、敵のバウンディングボックスがプレーヤーと交差するかどうかを確認しますか?

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

次に、敵のバウンディングボックスをアレイリストに追加します。

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...

それはあなたが求めていたものですか?

幸運を祈ります:)

編集:私はこれが機能するかどうかを確認していません、私はそれをブラウザ内に書きました...

于 2012-12-28T04:44:43.540 に答える