爆発を起こしています。爆発は、その長方形 (x、y、x + w、y + h) 内のすべての敵に当たるはずです。爆発と敵の両方が、四角形を返す getBounds() メソッドを持つ Sprite クラスから継承します。爆発アイテムを作成すると、コンストラクターで敵をループして、長方形がrectangle.intersects(rectangle2)と交差するかどうかを確認します。しかし、一見、交差することが想定されているターゲットが複数ある場合、チェックでそれらの一部が無視されることがあります...
クラス Explosion のコンストラクターで、クラス Sprite を継承します。
List<Zombie> zombies = mGamePlay.getZombieHandeler().getZombies();
Rect r = getBounds();
for(int i = 0; i < zombies.size(); i++)
{
Rect zR = zombies.get(i).getAnimation().getBounds();
if(!zombies.get(i).isDead() && r.intersect(zR))
zombies.get(i).doDamage(new int[]{damage, 0, 0});
}
クラス Sprite の内部:
public Rect getBounds()
{
return new Rect(mPosX, mPosY, mPosX + mWidth, mPosY + mHeight);
}