-1

このコードは、衝突で両方の敵を攻撃した場合 (それらの中を歩く)、または両方を殺した場合 (弾丸で) にのみ機能します (つまり、最初の敵と 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;
}
4

1 に答える 1

1

@ユーザー29698

ArrayLists の使用方法については、以前の投稿で投稿しました...複数の敵に対処する場合は、その方法を使用することをお勧めします。

敵を ArrayList に入れる方法

ここにヒットマンメソッドを投稿してください...

System.out.println("blah blah blah"); の使用を開始する必要があります。デバッグに役立ちます!

その行を括弧の間に入れてください。

コンソールに出力された場合、正しく機能していないのは「.intersects」メソッドではありません。それはあなたのヒット方法かもしれません...

于 2012-12-28T06:34:12.377 に答える