box2d:b2_dynamicBody没有移动b2_kinematicBody平台

时间:2014-10-17 13:49:04

标签: c++ box2d cinder

我有一个b2_kinematicBody类型的平台(盒子),并且正在使用linearVelocity移动。 比我有一个b2_dynamicBody的球。

当球落在平台上时,它停留在同一位置,不会随着平台移动。 enter image description here

查看我制作的这个小视频,其中显示了问题----->>> https://vimeo.com/109238152

两个物体的摩擦力已经增加但没有结果。 我现在可以想到的只有一个解决方案是在他们有联系的这两个时间之间建立联系。 这是正确的解决方案吗?

提前谢谢 克里斯

PS:在c ++中使用最新版本的box2d进行了测试

1 个答案:

答案 0 :(得分:0)

如果你在谈论为什么它总是从平台上滚下来,那可能是因为它没有滚动摩擦(不要与表面摩擦混淆)导致它停止。滚动摩擦是为什么非常用力泵送的轮胎将比有点平坦的轮胎滚动更长的时间 - 当橡胶转过来时,能量被用来挤压橡胶。 Box2D中的灯具非常坚固,这在现实世界中是不可能的。因此,这个圆圈就像钢制火车车轮在钢制火车轨道上滚动,除了摩擦力更小。

尝试为圆体设置约0.5的角度阻尼值。这可能有点太多,但它应该给你这个想法。您可能会发现高角度阻尼在空气中减慢太多,看起来不自然。如果是这样,您可以动态调整角度阻尼,具体取决于它是否接触到某些东西。