javascript - 让 dampingRatio 与 Box2D 和 DistanceJoint 一起工作

标签 javascript box2d box2d-joints

我在几个项目上尝试过在 Box2D for JavaScript 中获得一个距离关节以永远停止摆动,但均未成功。无论我为物体的密度以及远关节定义的 dampingRatio 和 frequencyHz 设置什么值 - 结果都是你拿起一端而另一端无休止地摆动。我希望摆动变小,然后在摆动几次后停止。

// 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

最佳答案

答案是对摆动的物体施加线性阻尼。变量定义 = 新的 b2BodyDef();定义.linearDamping = .5;//等数字趋向 1 的速度很快

关于javascript - 让 dampingRatio 与 Box2D 和 DistanceJoint 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39475314/

相关文章:

javascript - 当用户在 IE8 中按 Enter 键时,如何阻止 classic-asp 页面提交表单?

javascript - 使用 jQuery 从按钮传递正确的 ID 号

javascript - 除某些元素外禁用右键单击

iphone - 如何在 box2d 中停止作用在物体上的力

java - 在 LibGDX box2D 中具有过滤器的主体之间使用接触监听器

javascript - 如何使用 Javascript 将开关设置为关闭?

java - jbox2d教程

Java Libgdx - Box2d setTransform带有关节的多个物体

c++ - Box2D 实体之间的层次连接