在XNA中对任意大小,定位和旋转的矩形进行碰撞检测

时间:2010-04-11 17:46:39

标签: c# xna collision-detection

我在C#中使用xna,在我的游戏中,我将有各种各样的太空飞船飞到这个地方。它们将在空间中具有任意旋转,大小和位置,我需要一种方法来确定它们何时发生碰撞。理想情况下,该方法将分别为大小,旋转和位置采用两个矩形,两个双精度和两个Vector2,并返回一个布尔值,指示它们是否相交。

3 个答案:

答案 0 :(得分:3)

看看这些链接:

Collision Detection Overview
Collision Detection Matrices
Putting Collision Detection Into Practice

它们向您展示了一种基于像素的碰撞检测方法,该方法比基于矩形的不规则形状对象更准确。

答案 1 :(得分:2)

你也可以考虑使用开箱即用的解决方案,并集成像Farseer Physics Engine这样的东西:
http://farseerphysics.codeplex.com/

答案 2 :(得分:1)

您描述的这些矩形称为OBB(Oriented Bounding Boxes)

它们之间发生碰撞的方法是使用“分离轴定理”

可以找到一个非常好的页面,详细描述了很多图片here