|
|
1
2
这是大多数物理图书馆普遍存在的问题。如果你在谷歌上搜索“渗透深度”(和“物理”,我建议,或者你可能会发现完全不同的东西:d),你会发现即使是这些库也会使用像你这样的技巧。 有两种解决方案: 便宜的方法是增加更新频率。用10个小步骤移动物体,而不是用一个大的步骤,这样你的穿透力就会小一些,所以通过将球从墙上偏移来固定它的效果就不那么明显了。 最昂贵的是连续碰撞检测。有一些算法可以告诉你,给定一个运动物体和一个静止物体,两个物体的精确时间点将相交。谷歌“扫描球面矩形交叉点”来找到其中一些。 然后你可以这样更新:球需要移动1.0个单位。检查有无碰撞。碰撞发生在0.25个单位之后,所以移动球0.25个单位,计算反射向量(使球从墙上反弹),用剩下的0.75个单位重复碰撞检查(直到你知道球的最终位置)。这可以完全避免穿透,即使你的球移动的太快,它通常会在一次更新中跳过墙,碰撞也会被检测到。 |
|
|
2
1
人们普遍认为,由于时间步长的原因,在两次更新之间的冲突将相交超过一个可接受的点。 基本上,您必须将其插值回发生碰撞的最后一帧和当前帧之间的点,将对象移回该点,然后计算力等。 |
|
|
Harkan · JavaFX:将线绑定到两个窗格的中心 8 年前 |
|
|
Rooney · 使用br将项目排列为html 8 年前 |
|
|
user9187461 · 管线旋转30度 8 年前 |
|
|
OPP · Python在保存行后不断删除行 8 年前 |
|
|
V.Liang · Java在读取多行后打印多行 8 年前 |