2014-10-17 115 views
0

我有一个平台(盒子),它是类型为b2_kinematicBody并且正在使用linearVelocity移动。 比我有一个球是一个b2_dynamicBody。box2d:b2_dynamicBody不随b2_kinematicBody平台移动

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

检查这个小视频我做这说明了什么问题----- >>> https://vimeo.com/109238152

两个对象,但没有结果已经增加了摩擦。 我现在可以想到的只有一个解决方案,就是在这两个联系人之间建立联系。 这是正确的解决方案吗?

提前THX 克里斯

PS:在C++

+0

很奇怪。显然,摩擦力会产生影响,因为球会改变旋转方向。但它改变了错误的方式。它应该最终逆时针旋转。你是否正确绘制了球图形?这是一个孤立的情况,只发生在这一系列的事件中,或者即使当球直下时,它也会发生吗?这是我期望看到的,如果速度和旋转恰到好处,那么球可以停止:http://youtu.be/rApgHVm13J0 – iforce2d 2014-10-17 16:26:05

+0

嘿, Thx为快速反应和视频。 你是对的我在画角线时切换cos和sin。 除了我还认为我发现问题为什么球始终离开平台。 这可能是因为它是一个没有摩擦的完美圆圈? 当我将它更改为一个盒子时,它将停留在平台上。 Greets – Kris 2014-10-17 17:15:32

回答

0

如果你是在谈论为什么它总是将关闭平台,可能是因为它没有滚动摩擦(最新版本的Box2D的测试不要与表面摩擦混淆)导致它停止。滚动摩擦是为什么非常难以抽吸的轮胎会比有点平坦的轮胎滚动时间更长 - 当橡胶转向时压缩橡胶会消耗能量。 Box2D中的灯具非常坚硬,这在现实世界中是不可能的。所以这个圈子就像一个钢铁车轮在钢轨上滚动,除了比那更少的摩擦。

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