1

我有一个平台(盒子),它的类型是 b2_kinematicBody,并以线性速度移动。比我有一个 b2_dynamicBody 的球。

当球落在平台上时,它保持在同一位置,不随平台移动。 在此处输入图像描述

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

已经增加了两个物体的摩擦力,但没有结果。我目前只能想到一种解决方案,就是在他们接触的这两个加班时间之间建立一个联合。这是正确的解决方案吗?

提前谢谢克里斯

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

4

1 回答 1

1

如果您在谈论为什么它总是从平台上滚下来,那可能是因为它没有滚动摩擦(不要与表面摩擦混淆)导致它停止。滚动摩擦是为什么一个用力打气的轮胎比一个有点扁平的轮胎滚动的时间更长——当它转动时,能量被用来挤压橡胶。Box2D 中的夹具是完全刚性的,这在现实世界中是不可能的。所以这个圆就像一个钢制的火车车轮在钢制的火车轨道上滚动,只是摩擦力更小。

尝试为圆体设置大约 0.5 的角阻尼值。这可能有点太多了,但它应该给你的想法。您可能会发现在空中时,高角度阻尼会使它减慢太多,这看起来不自然。如果是这样,您可以根据它是否接触到某物来动态调整角度阻尼。

于 2014-10-17T18:59:51.707 回答