2012-04-01 10 views
0

私のJavaゲームに問題があります。私はr型のようなものを作っています。これはJavaでゲームを作るための私の最初の試みです。私は宇宙船、ミサイル、エイリアンを作りました。すべてが機能していますが、衝突の検出です。実際のエイリアンが来る前にプレイヤーと敵との衝突を約500ピクセルで記録しているように見えて、紛失したと言います。あなたはそれで私を助けることができますか?Java 2dゲームの衝突検出

編集

[OK]を、それはまだ働いていません。

Board.java:

public void checkCollisions() { 
    Rectangle r1 = al.getBounds(); 
    ArrayList missiles = Craft.getMissiles(); 
    for (int w = 0; w < missiles.size(); w++) 
    { 
     Missile m = (Missile) missiles.get(w); 
     Rectangle m1 = m.getRect(); 
     if (r1.intersects (m1) && al.Alive()) { 
      al.isAlive = false; 
      m.visible = false; 
     } 

    } 

    Rectangle c = p.getBounds(); 
    if (c.intersects(r1)) { 
     lost = true; 
    } 

Craft.java:

public Rectangle getBounds() { 
    return new Rectangle(x, y, width, height); 
} 

Enemy.java:

public Rectangle getBounds() { 
    return new Rectangle(x, y, width, height); 
} 
私はここで衝突検出が行われる私のコードを、貼り付けられます

私が言ったように - ミサイルは完璧に動作していますが、クラフトとエイリアンの衝突検出はx = 458、whiそれは約1100 - 1200であるべきです。事前に感謝;)。

+0

"それで私を助けることができますか?" - あなたの問題/衝突検出アルゴリズムに関する有用な情報を提供していない場合は、いいえ。 – zapl

+0

コードを使用すると助けになるかもしれません。正直なところ、あなたのコードを見ずにどのように答えが現実的に期待できるのですか? –

答えて

3

不正な座標のRectangleオブジェクトを作成しているようです。 System.out.println(String s)を使用して、Rectangleが作成された座標を印刷し、それらが正しいかどうかを確認します。

あなたの言ったように、ミサイルがうまく動作しているため、プレイヤーの四角形の座標が正しくないと思われます。

ゲームの完全なコードを私に送信できますか?私はそれを試してみたいです...

+0

編集して、あなたが今私を助けてくれることを願っています。 – GrandMasterRapid