2011-06-29 114 views
2

我有兩個矩形,一個正在移動,另一個是靜止的。我有兩個矩形的大小和移動矩形的當前座標以及它想去的座標。它將直線移動。有了這些信息,找到這兩個盒子是否會在路徑上碰撞的最有效方法是什麼?這樣做效率更高還是每隔一幀少量移動盒子並每次都進行碰撞檢測?路徑上的矩形碰撞檢測

回答

2

由於矩形中的一個是固定的,要做到這一點的一種方式是創建由移動矩形行進的路徑,它可以只使用它的初始和最終位置來完成的多邊形:

(initial position) 
+--------+ 
|\  |\ 
| \  | \ 
+--\-----+ \ 
\ \  \ \ 
    \ +-----\--+ 
    \ |  \ | 
    \|  \| 
    +--------+ 
     (final position) 

路徑多邊形:

+--------+ 
|   \ 
|   \ 
+   \ 
\   \ 
    \   + 
    \   | 
    \   | 
    +--------+ 

然後在靜止矩形和路徑多邊形之間使用正常的多邊形碰撞檢測算法。

+0

嗯,我會測試一下。 – Yifan

0

如果它以恆定速度移動,最有效的方法是計算它們何時會發生碰撞(時間=速度/距離)以及它們是否會發生碰撞(導出線性運動方程,並確定它是否會通過固定矩形)。如果它以可變速度移動,則每次速度改變時執行這些計算。這些都比每幀比較效率更高。