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

标签 c# xna collision-detection game-physics

我有一个 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/

相关文章:

c# - IPEndPoint 对象的比较不起作用

c# - 术语 "true"面向对象是什么意思

c# - .NET Web 服务和 BackgroundWorker 线程

Xbox 上提供 C# Marshal 类吗?

c# - 原子动画——哪种技术

c# - Quartz for asp.net 被 iis 服务器杀死

XNA - 关于世界空间和屏幕空间之间的关系

c# - 如何在不移动盒子的情况下进行 BoxCast()?

math - 如何计算炸弹的爆炸面积?

java - libGDX - 奇怪的碰撞行为