我尝试了很多事情却没有找到好的解决办法,所以我来了。
在我的游戏(2d)中,我必须检查与我的所有物体(房子,车库…)的碰撞,这些物体都是图像内部的Rotated Rectangle
,在从aPoint 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
对象与线的冲突是否完全其他东西,也许只检查YY直线和每个旋转矩形轴之间的碰撞?谢谢你的建议。
最佳答案
我已经通过检查我的直线和旋转矩形的每一边之间的交集来解决这个问题(我必须首先旋转矩形的每一边)。
我很快就会把这个小算法发出去。