簡體   English   中英

使阻尼比率與 Box2D 和 DistanceJoint 一起使用

[英]Getting dampingRatio to work with Box2D and DistanceJoint

我曾在幾個項目中嘗試獲得一個距離關節以在 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 定義 = new b2BodyDef(); 定義.線性阻尼 = .5; // 等等,其中數字向 1 變慢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM