このコードは、衝突で両方の敵を攻撃した場合 (それらの中を歩く)、または両方を殺した場合 (弾丸で) にのみ機能します (つまり、最初の敵と 2 番目の敵に遭遇するか、両方を弾丸で殺します)。最初の敵 (弾丸あり) が 2 番目の敵 (衝突あり) にぶつかっても、私の HP は減りません。任意のヒント??
if (d.intersects(r1))
{
en.isAlive = false;
hitfirst = true;
}
if (d.intersects(r2))
{
en2.isAlive = false;
}
if (d.intersects(r2) && hitfirst == false)
hitmang(hit);
p.hitting = true;
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) && en2.visible == true && !p.hitting) {
hitmang(hit);
p.hitting = true;
}
if (!d.intersects(r1) && !d.intersects(r2)){
p.hitting = false;
}
私の敵の境界
public Rectangle getBounds() // ghost is 114 x 134
{
return new Rectangle(x, y, 114, 134);
}
敵
en = new Enemy(700, 150);
en2 = new Enemy (980, 150);
ヒットマンズ
private void hitmang(int x) // x=25
{
p.user_hp = p.user_hp - x;
}