Box2Dで作れる物体の形は,
円を作るには
まずは円の作り方です。前回と似たような形で,
これをいつも通り以下のコマンドでコンパイルします。
mxmlc -source-path=C:\lib\Box2DFlashAS3_2.0.0 DrawingCircle.as
生成されるFlashは以下のようなものになります。
全体の流れについて
基本的な流れは長方形を作るときと変わりません。マウスのボタンが押されてmouseDownHandlerが呼ばれたら,
マウスのボタンが離されてmouseUpHandlerが呼ばれたら,
円を見ると,
プログラムは,
円の中心と半径を計算する
マウスのボタンが押されたら,
var x:Number = circleCenter.x / DRAW_SCALE;
var y:Number = circleCenter.y / DRAW_SCALE;
円の半径については,
円の中心
var dx:Number = (event.stageX - circleCenter.x) / DRAW_SCALE;
var dy:Number = (event.stageY - circleCenter.y) / DRAW_SCALE;
そして,
var radius:Number = Math.sqrt(dx * dx + dy * dy);
b2CircleDefで円を作る
円の中心と半径が求まったので,
var bodyDef:b2BodyDef = new b2BodyDef();
bodyDef.position.Set(x, y);
var shapeDef:b2CircleDef = new b2CircleDef();
shapeDef.radius = radius;
shapeDef.density = 1; // 密度 [kg/m^2]
shapeDef.restitution = 0.5; // 反発係数、通常は0~1
b2CircleDefにはradiusというプロパティがあります。これは名前のとおり円の半径を表すプロパティです。その他のdensityやrestitutionはb2PolygonDefのときと同じです。
ちなみに,
ちょっと早足でしたが,