【发布时间】:2016-09-13 16:56:57
【问题描述】:
我在几个项目上尝试过在 Box2D for JavaScript 中让一个距离关节永远停止摆动,但均未成功。无论我为物体的密度以及远处关节定义的阻尼比和频率赫兹设置什么值 - 结果是你拿起一端,另一端无休止地摆动。我希望摆动变小,然后在摆动几下后停止。
// 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 定义 = 新 b2BodyDef();定义.线性阻尼 = .5; // 等等,数字接近 1 的速度很快 - 抱歉 - StackOverflow 不会让我回答...
标签: javascript box2d box2d-joints