2011-07-30 46 views
0

我想創建一個場景,其中一個正方形在屏幕上彈跳,另一個正好在場景中旋轉(可能旋轉)。在這種情況下碰撞檢測應該很容易,但是我應該將方塊完全分開(在兩個不同的類中)還是應該在繪圖方法中分配行爲?繪製兩個需要碰撞並具有不同行爲的對象

謝謝

回答

0

那麼兩個方塊是相同的,所以應該有一個Square類,使廣場,那麼它可能是最好創建一個CollisionDetection類。這個類可以用來測試相互重疊的正方形(碰撞),它會返回true或者false。

public static boolean SquareCollision(Rectangle r1, Rectangle r2) { 
    if(r1.lowerLeft.x < r2.lowerLeft.x + r2.width && 
     r1.lowerLeft.x + r1.width > r2.lowerLeft.x && 
     r1.lowerLeft.y < r2.lowerLeft.y + r2.height && 
     r1.lowerLeft.y + r1.height > r2.lowerLeft.y) 
     return true; 
    else 
     return false; 
} 
+0

嘿,雖然我們在這個問題上,我正在嘗試這個例子,你給了我。我嘗試從同一個類使用不同名稱(square和statsquare)繪製2個方格,爲什麼我的應用會崩潰並伴隨NullPointerException?你是否打算以不同的方式繪製同一班級的廣場? – Jack

+0

你不會在內存中創建廣場,你需要做Square square = new Square();和Square statsquare = new Square(); – Chris

+0

我可以問你爲什麼總是在你的數學中使用左下角?而不是左上角和右下角等。 – Jack