1

我的问题主要与它背后的理论有关。我为一个项目制作了一个 2D 游戏,我通过使用 Rectangle 类中的 .overlaps 方法检测碰撞,并且碰撞处理得很好。首先,被认为是一种连续或离散的碰撞技术。当我阅读理论时,我说它是离散的,但是我在在线文章中阅读离散的主要缺点是它在实际发生碰撞后检测到碰撞。所以,我的问题如下:它实际上是离散的吗?如果这就是为什么我没有看到任何缺点?谢谢

4

1 回答 1

4

这是谨慎的,因为我们只有在检查假想/不可见框是否相交后才知道两个边界框是否发生碰撞,这意味着它们已经重叠。因此,当您因该碰撞而采取行动(更新)时,对象并未处于碰撞位置。更糟糕的是,如果它们不是相对速度,它们可以通过。想想经典的直升机游戏,您可以通过上下移动来躲避障碍物。假设您将斩波器的速度设置在 x 非常高,这取决于取决于硬件的帧速率,您将看到实际碰撞的不同位置。对于连续的,一个对象必须知道它可能碰撞的其他对象的物理特性,以预测可能的碰撞。

实际上,对于像我提到的直升机游戏这样的 2D 游戏来说,这真的无关紧要。您可以通过更改对象的旋转、速度、重力和一些漂亮的动画来模拟碰撞的结果。如果你的游戏对象有抽象的形状,你应该使用 box2d 之类的东西。还有一个很好的Intersector类。

此外,您可以尝试使用对象的不同边界框大小(边界),而不是创建等于其宽度和高度的对象的边界框。

于 2013-07-16T17:38:58.540 回答