我有一个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
但我不确定这是否正确。
你们有没有关于可能需要用来实现这一目标的引擎的提示?甚至是使用这种方法的良好编码实践?
答案 0 :(得分:3)
我在http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.rectangle.intersect.aspx
找到了有两个相似的静态方法(它们在返回值的方式上有所不同),因此给你一个也是一个矩形的交集。这应该足以做你想做的事。