【问题标题】:Projecting Objects Out Of Collision将物体投射出碰撞
【发布时间】:2010-10-22 05:47:13
【问题描述】:

作为爱好,我正在开发一款 2D 游戏。我已经使用分离轴方法实现了一些基本的碰撞检测。当两个物体发生碰撞时,我会将其中一个物体沿重叠最少的轴投影出来。

我遇到的问题是,当物体移动得相当快时,重叠最少的轴并不总是正确的方向。我拥有的最好的例子是当一个物体由于模拟的引力而向下移动(沿着+ y轴)并与靠近“边缘”的环境物体(如悬崖边缘)碰撞时。如果物体下落的速度足够快,那么重叠量最少的轴最终会成为 x 轴,并且物体会被沿 x 轴侧向推。

处理快速移动物体的最佳方法是什么?我考虑过以小增量移动下落的物体,这似乎增加了很多额外的开销。我也考虑过给环境对象一个“偏好”哪个轴来投射下落的对象,但这似乎很混乱且容易出错。

有没有办法在不增加大量额外开销的情况下做到这一点?

【问题讨论】:

    标签: game-physics


    【解决方案1】:

    我终于找到了一篇描述扫描测试的好文章,以防其他人偶然发现这篇文章有同样的问题。文章有更多,但下面的链接描述了轴对齐边界框之间的碰撞,这是我正在使用的:

    link text

    【讨论】:

    • 嗯,你也可以看看连续碰撞检测——gamedev.net/reference/programming/features/ellipsoid-ccd
    • 另外,我知道您这样做是出于一种爱好,但如果您想查看好的 2D CCD 代码,请查看 Box2D(如果您喜欢的话,它还有一个名为 Box2DX 的 C# 端口那种东西)。开源且维护良好。
    • 感谢您的建议。 CCD上的东西看起来很有趣。
    猜你喜欢
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    相关资源
    最近更新 更多