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;
}
嘿,雖然我們在這個問題上,我正在嘗試這個例子,你給了我。我嘗試從同一個類使用不同名稱(square和statsquare)繪製2個方格,爲什麼我的應用會崩潰並伴隨NullPointerException?你是否打算以不同的方式繪製同一班級的廣場? – Jack
你不會在內存中創建廣場,你需要做Square square = new Square();和Square statsquare = new Square(); – Chris
我可以問你爲什麼總是在你的數學中使用左下角?而不是左上角和右下角等。 – Jack