首先,我有一個簡單的類,Line
;C#/ XNA Line矩形碰撞/響應
public class Line
{
public Vector2 P1 = Vector2.Zero;
public Vector2 P2 = Vector2.Zero;
public Line(Vector2 p1, Vector2 p2)
{
P1 = p1;
P2 = p2;
}
}
遊戲中所有行的列表,以及我的小精靈邊界矩形。我試圖找出這個矩形底部中間是否低於它直接在上面的那一行上的點,並將它更新到它所在的那一行上的點。這張照片可能會幫助你理解我的意思;
矩形向下移動,通過它的交點,然後相應地更新。
有關如何去做這件事的任何想法?我可以很容易地找到它上面的那條線,但是我不知道如何獲得它上面的線,並且避免它在這點之上下降。
代碼示例或引用將是偉大的。
盒子是否總是處於相同的方位或是否可以以任何角度落下? – lzcd
只是一個側面說明:你應該非常*疲倦於做點或線對象的碰撞響應。浮點精度問題存在巨大的潛力。考慮使用實體形狀(矩形,三角形等)。 –
** @ Izcd:**它是一個軸對齊的矩形,不旋轉。 ** @安德魯:**好吧,我正在爲我的遊戲創建一個更有機的編輯器,似乎很多編輯使用'線條'來確定它們的碰撞。像這樣一個例子:[Dust:AET Editor](http://www.gamasutra.com/db_area/images/feature/180520/dustaet_03_large.jpg)。如何實現這樣的碰撞? – kikigreydragon