我在几个项目上尝试失败,但都没有成功使距离遥远的距离永远停止在Box2D for JavaScript中摆动。无论我为物体的密度以及远处关节定义的阻尼比和频率Hz设置了什么值-结果都是您拾取一端,而另一端无限地摆动。我希望秋千变小,然后再摆动几下就停下来。
// I have made a world and bodies with density of 1 (although I have tried bigger)
var distanceJointDef = new b2DistanceJointDef();
distanceJointDef.Initialize(circleBody, triBody, circleBody.GetWorldCenter(), triBody.GetWorldCenter());
distanceJointDef.dampingRatio = 1; // tried .5, 20, etc. no difference
distanceJointDef.frequencyHz = 30; // tried all sorts of numbers
world.CreateJoint(distanceJointDef);
关节有效-但阻尼无效。任何帮助,将不胜感激。这是我正在使用的Box2D的链接:https://github.com/joelgwebber/bench2d/tree/master/js/Box2dWeb-2.1a.3
最佳答案
答案是对正在摆动的物体施加线性阻尼。 var definition = new b2BodyDef(); definition.linearDamping = .5; //等等,其中朝向1的数字会快速变慢
关于javascript - 使阻尼比与Box2D和DistanceJoint配合使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39475314/