我嘗試了很多事情,但沒有找到好的解決方案,所以我就在這裏。
在我的遊戲(2D)我要檢查我所有的對象碰撞(房子,車庫..),這是內部Rotated Rectangle
圖像,從Point A
到Point B
射線之間。檢查直線和旋轉矩形之間的相交處
我使用XNA有一些代碼:
public void Update(List<Obstacle> Lob, DragObj Ldo)
{
bool inter = false;
Point A;
Point B;
A = new Point((int)pos.X, (int)pos.Y);
B = new Point((int)Ldo.Position.X, (int)Ldo.Position.Y);
for (int j = 0; j < Lob.Count(); j++)
{
if (inter = interclass.LineIntersectsRect(A, B, Lob[j].Shape)) // I have this for the moment, Shape is the rectangle but not rotated)
{
inter = true;
islight = false;
}
else
{
inter = false;
}
}
}
所以要解決我的問題,我是否找到一個解決方案有一個rotatedRectangle
對象與檢查碰撞線的方法。無論是完全別的東西,也許只是檢查直線和每個旋轉的矩形軸之間的碰撞?
感謝您的建議。
嘗試旋轉線,而不是隻是一個小小的三角。 – MickLH
旋轉線會改變我的2D空間組織,不是嗎?我會嘗試旋轉我的2點,但它不會很容易在我的當前代碼中實現。 – Gabson
但你可以想象它的權利?如果將兩者放在一起並旋轉以使矩形爲直線,則可以使用常規的軸對齊的矩形函數 – MickLH