XNA碰撞检测

时间:2009-05-28 19:13:50

标签: xna collision-detection collision

我有一个球在一个立方体内移动,我发现它何时越过立方体(带有一个边界球和一个边界框)。 现在我想知道球从哪一侧出来。然后我可以将球重定向到正确的方向。我怎么能用球的“世界”矩阵做到这一点?

我应该自己跟踪球的坐标,还是应该从世界矩阵中推断出它?

1 个答案:

答案 0 :(得分:2)

我将从碰撞开始。你有六个平面(每个是[点,普通单位矢量]对)和一个球体(一个[点,半径]对)。

检查每个平面的点。要执行此操作,请从该点减去由平面的球体半径放大的单位矢量。 (Point - = PlaneUnitVector * radius)

现在,通过一些矢量数学,您可以看到它所在的平面的哪一侧。

然后,您将使用平面的单位矢量进行反弹计算。

您遇到的下一个问题是您一次穿过多个平面的情况。