box2dweb之關節joint(聯結器)

2021-09-08 12:17:41 字數 1893 閱讀 9409

box2d.dynamics.joints>>>動態關節包;

b2distancejoint 距離連線

b2distancejointdef 距離連線定義.

b2gearjoint 齒輪鏈結.

b2gearjointdef 齒輪連線定義.

b2joint 連線基類.

b2jointdef 連線定義基類.

b2jointedge 用於組合剛體或連線到一起.剛體相當於節點,而連線相當於邊

b2mousejoint 滑鼠連線.

b2mousejointdef 滑鼠連線定義.

b2prismaticjoint 移動連線.

b2prismaticjointdef 移動連線定義.

b2pulleyjoint 滑輪連線.

b2pulleyjointdef 滑輪連線定義.

b2revolutejoint 旋轉連線.

b2revolutejointdef 旋轉連線定義.

當然,建立的時候用聯結器定義類,建立出來的時聯結器類。下面我們來一一來看。

距離聯結器就是以固定的距離來連線兩個body,這其中就有4個固有概念,兩個物體,兩個物體上的連線點。

首先,我們先定義兩個body:

//

定義兩個body

var bodydef=new

b2bodydef();

bodydef.type =b2body.b2_dynamicbody;

var fixdef=new

b2fixturedef();

fixdef.sharp=new b2circleshape(0.2)

fixdef.density = 5.0;

fixdef.friction = 0.4;

fixdef.restitution =0.3;

var body1 =world.createbody(bodydef);

body1.setposition(

new b2vec2(2,2));

body1.createfixture(fixdef);

var body2 =world.createbody(bodydef);

body2.setposition(

new b2vec2(4,3));

body2.createfixture(fixdef);

然後我們用距離聯結器將這兩個物體連線起來:

var disjoint=new

b2distancejointdef(); //

設定要連線的兩個物體

disjoint.bodya=body1;

disjoint.bodyb=body2;

//設定連線在兩個物體上相對於中心點的位置(如果不設定,預設為中心點)

disjoint.localanchora.set(0.1,0.1);

disjoint.localanchorb.set(0,0);

//設定距離,如果不設定則為兩物體之間的實際距離,如果設定的距離與實際距離不符,則拉伸至設定的距離

disjoint.length=1;

world.createjoint(disjoint);

下面來看效果

距離聯結器還有幾個有趣的引數,collideconnected   是否允許關聯的兩個物體碰撞,預設是不計算的。另外兩個引數與關節的彈性相關,頻率(frequency)和阻尼率(damping ratio),其中頻率指諧振時候的快慢,一般該值要小於時間歩頻率(世界重新整理頻率)的一半,阻尼率是乙個0~1之間的數值,值為1時將沒有振動。下面我們來加彈性引數:

disjoint.frequencyhz = 4;

disjoint.dampingratio = 0.2;

看效果

物理引擎Box2D之剛體

剛體代表乙個質點,因此它只有位置,沒有大小。物理引擎box2d把剛體分為三種型別。1 靜態剛體。靜態剛體沒有質量,沒有速度,如果你想改變它的位置,只能通過 修改。2 稜柱剛體。稜柱剛體沒有質量,但有速度,引擎會根據速度計算並更新它的位置。3 動態剛體。動態剛體有質量也可以有速度,這是我們最常用的剛體...

box2d系列之 加衝力 impulse

新建兩個影片剪輯 乙個的連線名為 ground 乙個為box 下面是codes package private function createworld void private function createground void private function createbox void r...

box2d之剛體,定製器筆記

剛體 body 通過世界建立的物件,物理引擎裡面所有東西都是剛體 建立方式 定義乙個b2bodydef,b2world呼叫createbody的方法傳入此引數 定製器 fixture 帶有形狀,密度,摩擦力等屬性 建立方式 定義乙個b2fixturedef,呼叫剛體的createfixture方法為...