Box2D 座標を指定して好みの形の図形を作成する
http://www.at-sonic.com/blog/archives/2008/05/box2dflashas3200-2.php
Box2DFlashAS3_2.0.2
例えばこうすると平行四辺形の図形ができると思う。
点の座標は時計周りで指定しなければいけない。
一部がくぼんだ図形も作れない。作るには複数の図形を組み合わせるしかない。
var body:b2Body; var bodyDef:b2BodyDef; var mypolydef:b2PolygonDef; // 初期化,図形の座標の設定 bodyDef = new b2BodyDef(); bodyDef.position.x = 10; bodyDef.position.y = 10; // ワールドに図形が存在する座標を設定 body = m_world.CreateBody(mybodydef); // 図形の初期化 mypolydef = new b2PolygonDef(); // 衝突の設定 mypolydef.filter.categoryBits = parseInt("010", 2); mypolydef.filter.maskBits = parseInt("111", 2); mypolydef.density = 1.0;// 密度(0=固定) mypolydef.friction = 0.5;// 摩擦係数 mypolydef.restitution = 0.2;// 反発係数 // 頂点の数 mypolydef.vertexCount = 3; mypolydef.vertices[0].Set(1, -2); mypolydef.vertices[1].Set(1, 0); mypolydef.vertices[2].Set(-1, 0); // 図形をセット body.CreateShape(mypolydef); // 座標を変更する mypolydef.vertices[0].Set(1, 0); mypolydef.vertices[1].Set(-1, 2); mypolydef.vertices[2].Set(-1, 0); // 続けて図形をセット body.CreateShape(mypolydef); // 質量を自動(?)設定 body.SetMassFromShapes();