10

我正在使用mousejoint 在box2d 中拖动物体,但这会导致惯性延迟。

有没有办法瞬间拖动身体?

4

2 回答 2

18

解决方案是在 b2MouseJointDef 中调整属性频率Hz 和阻尼比。

例如:

b2MouseJointDef md;
md.body1 = _groundBody;
md.body2 = body;
md.target = p;
md.maxForce = 10000.0f * body->GetMass();
md.dampingRatio = 0;
md.frequencyHz = 100;
_world->CreateJoint(&md);
于 2010-02-03T11:08:51.123 回答
1

我正在尝试在 Processing/Box2d 库中实现一个乒乓球风格的游戏,我预计会遇到同样的问题。想到的一件事是在 Box2d 世界中维护一个隐藏对象,一个以传统方式使用关节操作的对象,然后绘制一个跟随鼠标而没有帧延迟的虚拟对象。这可能足以欺骗用户。

另一方面,Box2d 不是一个严格的物理模拟,并且允许对重叠对象进行一些宽恕,所以看起来应该有一种方法可以做到这一点。

于 2010-02-03T04:50:44.693 回答