Box2D 三 建立圓,長方形,凸多邊形

2021-06-14 07:24:56 字數 2191 閱讀 4684

下面說下凸多邊形的建立.box2d允許你建立任何種類的多邊形形狀,只要多邊形是凸多邊形,這將意味著它擁

有的所有內角要小於180度,所有的頂點要遠離中心,而且你要按順時針方向排列它們。

建立過程:

1. 首先,建立乙個向量(vector)來儲存所有的頂點:

var vertices:vector.= new vector.();

2. 然後,我們將所有頂點作為b2vec2物件並順時針方向加到向量(vector)裡,

並設定b2vec2物件的座標(相對於剛體中心的座標)。

vertices.push( new b2vec2(-20/worldscale, -20/worldscale) );

vertices.push( new b2vec2(20/worldscale, -20/worldscale) );

vertices.push( new b2vec2(20/worldscale, 20/worldscale)  );

vertices.push( new b2vec2(-20/worldscale, 20/worldscale)  );

3. 將向(vectors)變成多邊形形狀

polygonshape.setasvector(vertices, 4);     //4是頂點數

package 

private function createtip():void

private function initworld():void

private function onstageclick(event:mouseevent):void else if(random <= 0.5) else if(random <= 0.75) else

} private function createball(x:number, y:number):void

private function createrect(x:number, y:number):void

private function crate********(x:number, y:number):void

polygonshape.setasvector(vertices, 3);

var fixturedef:b2fixturedef = new b2fixturedef(); //夾具(fixture)用於將形狀繫結到剛體上

fixturedef.density = 1; //密度

fixturedef.restitution = 0.1; //彈性係數

fixturedef.friction = 0.1; //摩擦係數

fixturedef.shape = polygonshape;

var polygon:b2body = world.createbody(bodydef); //建立剛體

polygon.createfixture(fixturedef);

} private function cratepolygon(x:number, y:number):void

polygonshape.setasvector(vertices, 6);

var fixturedef:b2fixturedef = new b2fixturedef(); //夾具(fixture)用於將形狀繫結到剛體上

fixturedef.density = 1; //密度

fixturedef.restitution = 0.1; //彈性係數

fixturedef.friction = 0.1; //摩擦係數

fixturedef.shape = polygonshape;

var polygon:b2body = world.createbody(bodydef); //建立剛體

polygon.createfixture(fixturedef);

} private function createfloor():void

private function debugdraw():void

private function onupdate(e:event):void

private function drawbackground():void }}

box2d 碰撞過濾

原帖 碰撞篩選就是乙個防止某些形狀發生碰撞的系統。按照具體需求設定哪些物體跟那些物體發生碰撞,跟哪些物體不發生碰撞。box2d通過種群跟組索引支援碰撞篩選。組索引比較簡單,設定其shapedef的groupindex值即可,例如boxdef.filter.groupindex 1。通過groupin...

Box2D學習筆記

box2d是乙個用於遊戲的2d剛體 庫,程式設計師可以在他們的遊戲裡使用他們,也可以是的自己的物體運動的更可信。讓他看起來更加接近現實。物理引擎是乙個程式性的動畫系統。而不是由動畫師去移動物體。這一切都是建立在牛頓力學的基礎之上。box2d最初是用c 來寫的,之後有被多種語言所實現。box2d中的核...

BOX2d繪製曲線

來自天地會的 wkyjoey同學 問道如何做乙個重力大師遊戲 如下圖 這裡要特意表示一下歉意,最近一直忙於工作,沒有及時更新教程。對於重力大師遊戲 試玩之後,不難發現,我們在執行時可以建立的剛體有兩種,線條剛體和多邊形剛體。今天我們來一起研究一下線條剛體的建立。多邊形剛體會在下次教程中討論。這裡我們...