2011-03-21 61 views
9

我正在试验box2d。 我似乎让人们形容为粘壁我怎样才能防止球粘在Box2D的墙上?

我有一个球和桨

我使用所有的基本建议的标准,我能找到,10M的世界,1M球

的一个问题球具有以下属性:

shape: circle (.5f radius) 
size: 1.0f 
density: 1.0f 
restitution: 1.0f 
friction: 0.0f 

用于移动球的桨为1.5m,它具有以下性质: 形状:

circle (.75f radius) 
size: 1.5f 
density: 10.0f 
restitution: 0.1f 
friction: 0.0f 

正如你看到所有物体的摩擦力都是0。

球不断地卡住沿墙壁滚动或在90个角

我想我可以检测与墙壁碰撞并触发applyLinearImpulse移动球从墙上完全卡住。

+11

我不得不说这样做,你的问题的标题立即使我怀疑,如果你是一个阿拉斯加裸体。 – Groovetrain 2011-03-21 17:46:11

回答

12

您需要降低弹性碰撞的最小速度阈值。

通过减少b2Settings::b2_velocityThreshold接近0

+0

看起来像我所需要的。什么是明智的价值呢?最初我会假设将它设置为0.f将确保它永远不会卡住,但这会产生不利影响吗? – Rob 2011-03-21 18:41:19

+0

从零开始工作 - 0.1应该没问题。如果你想让物体停靠在表面上,0只会产生不好的效果 - 它们会不停地晃动。 – Martin 2011-03-21 19:05:25

+0

听起来不错。非常感谢您的帮助。 – Rob 2011-03-22 10:26:08