我的问题主要与其背后的理论有关。我为一个项目制作一个2D游戏,我通过在Rectangle类中使用.overlaps方法来检测碰撞,并且可以很好地处理碰撞。首先,被认为是连续或离散的碰撞技术。正如我正在阅读理论,我说它是离散的,但我在网上的文章中读到,离散的主要缺点是它在实际发生后检测到碰撞。所以,我的问题如下:它实际上是离散的,如果这是为什么我看不出任何缺点? 感谢
答案 0 :(得分:3)
这是谨慎的,因为我们只知道在检查虚拟/不可见框是否交叉意味着它们已经重叠之后是否碰撞了两个边界框。因此,当您因碰撞而采取行动(更新)时,对象不会处于碰撞位置。更糟糕的情况是,如果他们不是相对速度,他们可以通过。想想经典的直升机游戏,你可以通过上下躲避障碍物。假设您将斩波器的速度设置为非常高,取决于您的帧速率(取决于硬件),您将看到实际碰撞的不同位置。对于连续,一个对象必须知道它可能碰撞的其他对象的物理属性预测可能的碰撞。
实际上,对于像我提到的直升机游戏这样的第二场比赛,它确实无关紧要。您可以通过对对象的旋转,速度,重力和一些不错的动画进行更改来模拟碰撞的结果。如果你的游戏对象有抽象的形状,你应该使用像box2d这样的东西。还有一个很好的Intersector课程。
此外,您可以尝试对象的不同边界框大小(边界),而不是创建对象的边界框等于其宽度和高度。