我有一个 Breakout 游戏,在这个游戏中,在某个时刻,我用类似这样的东西检测到球和 Racket 之间的碰撞:
// 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
但我不确定这是正确的做法。
对于我可能必须使用的引擎,你们有什么建议可以实现吗?或者甚至是使用这种方法的良好编码实践?
最佳答案
我在 http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.rectangle.intersect.aspx 找到了
有两个相似的静态方法(它们在返回值的方式上有所不同),结果为您提供了也是矩形的交集。这应该足以做你想做的事。
关于c# - 从 Rectangle.Intersects() 获取碰撞细节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13951595/