0

r-typeのようなものを作っています。宇宙船、ミサイル、エイリアンを作成しましたが、衝突検出以外はすべて機能しています。実際のエイリアンが来て負けたと言う前に、プレイヤーと敵との衝突を約500ピクセルで記録するようです。

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は約 1100 ~ 1200 で検出されます。

4

1 に答える 1

3

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

あなたが言ったように、ミサイルは正常に機能するため、プレイヤーの Rectangle の座標が間違っているのではないかと思います。

ゲームの完全なコードを送ってもらえますか? 私はそれを試してみたい...

于 2012-04-01T18:45:13.240 に答える