2017-01-28 3 views
-3

私は、2つのオブジェクトが衝突しているかどうかを検出するメソッドを構築したいと思います。それらのヒットボックスは配列に格納されます。この2つのオブジェクトそれぞれの[topLeftX、topLeftY、bottomRightX、bottomRightY]のように。私は2つの配列を使用してこれを検出する正しいif文を理解することはできません。Javaの配列との衝突を検出する

public class Physics { 
    public static boolean isColliding(int ob1Hitbox[], int ob2Hitbox[]) { 

    } 
} 

このメソッドは、衝突が発生した場合にtrueを返す必要があります。

+2

は、スタックオーバーフローへようこそ!宿題の助けを求めているようです。それ自体に問題はありませんが、これらのことを守ってください(http://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions/338845#338845)、それに応じて質問を編集してください。 –

+0

'オブジェクト 'とは何を意味していますか? – Null

+0

@Null rectangles –

答えて

1

あなたは計算があなたのために行っているためにRectangle#intersectsを使用することができます。

import java.awt.Rectangle; 

public class Physics { 
    public static boolean isColliding(int[] ob1Hitbox, int[] ob2Hitbox) { 
     return toRectangle(ob1Hitbox).intersects(toRectangle(ob2Hitbox)); 
    } 

    private static Rectangle toRectangle(int[] hitbox) { 
     int x = hitbox[0]; 
     int y = hitbox[1]; 
     int width = hitbox[2] - x; 
     int height = y - hitbox[3]; 
     return new Rectangle(x, y, width, height); 
    } 
} 
+0

なぜ静的な単語を使用しますか?並列宇宙には異なる物理学が存在するかもしれない;) –