从Rectangle.Intersects()获取碰撞细节

时间:2012-12-19 11:37:01

标签: c# xna collision-detection game-physics

我有一个Breakout游戏,在某些时候,我用这样的东西检测球和桨之间的碰撞:

// Ball class
rectangle.Intersects(paddle.Rectangle);

有什么方法可以使用当前的XNA API来获取碰撞的确切坐标或有关它的任何细节吗?

我想过做一些基本的计算,例如在碰撞时比较每个物体的精确坐标。它看起来像这样:

// Ball class
if((rectangle.X - paddle.Rectangle.X) < (paddle.Rectangle.Width / 2))
    // Collision happened on the left side
else
    // Collision happened on the right side

但我不确定这是否正确。

你们有没有关于可能需要用来实现这一目标的引擎的提示?甚至是使用这种方法的良好编码实践?

1 个答案:

答案 0 :(得分:3)

我在http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.rectangle.intersect.aspx

找到了

有两个相似的静态方法(它们在返回值的方式上有所不同),因此给你一个也是一个矩形的交集。这应该足以做你想做的事。