最佳2D碰撞检测

时间:2012-04-03 16:42:06

标签: c# xna collision-detection

我已经看过很多2D游戏的碰撞检测技术,但我找不到我正在寻找的东西。我的游戏是一种破砖游戏。

我看过像素到像素的碰撞风格,但它看起来很复杂,我正在尝试做什么。 有没有更简单的方法? 我正在使用XNA。 提前谢谢。

2 个答案:

答案 0 :(得分:3)

您是否尝试过调查矩形碰撞? 您在精灵上声明Rectangle并检查他们是否Intersect来测试碰撞。这是我所知道的最简单的方式。 请查看here以获取有关如何使用它的说明。

希望这有帮助。

答案 1 :(得分:3)

这是正确的方法。

  1. 将两个对象细分为一组凸子区域。这可以作为预处理步骤来完成。
  2. 对于来自对象A和对象B的两个子区域的每个组合,请执行以下比较: 一个。在N + 1维空间构造一个倾斜的棱镜。这是凸起子区域在时间= 0时从其位置移动到时间= n时的挤压。如果对象旋转,则为SOL,因为这不是凸区域。

    湾使用单纯形算法确定两个凸子区域是否存在可行的交集。或者,您可以使用椭圆体方法或内部遍历LP算法。

    ℃。如果任何凸子区域对相交,则发生碰撞。

  3. ...或者您可以像其他人一样使用轴对齐的矩形。如果您需要加快速度,请使用间隔树。