◆動体の作成
前回述べた通り、Box2Dの2.0.2では動体は「静体にプラスαの情報を加えたもの」となっています。
動体にするためにプラスαする情報は「質量」です。質量はデフォルトで0(kg)で、質量が0の物体は静体となります。
質量を設定するには、形状(b2Shapeオブジェクト)に密度(kg/m2)を設定しそこから自動的に算出・適用する方法と、明示的に指定する方法の2つがあります。
今回は自動的に算出する方法を紹介します。
密度の指定にはb2ShapeDef.densityプロパティを使います。
b2ShapeDefオブジェクトにdensityプロパティを設定し、b2Body.CreateShape()メソッドで物体に形状を適用した後にb2Body.SetMassFromShapes()メソッドを実行することで質量が算出されb2Bodyオブジェクトに適用されます。
【P】b2ShapeDef.density:Number-物体の密度(kg/m2)
【M】b2Body.SetMassFromShapes() : void-形状(b2Shapeオブジェクト)から質量を算出
引数-なし
戻り値-なし
ここでは、x=2.75m、y=1mの位置に幅0.6m、高さ0.4mの箱を配置し、前回作成した床に落下させます。
箱を表すb2Bodyオブジェクトは後々他の複数のメソッドから参照するつもりなのでプライベートプロパティ_bBoxとして定義しておきます。
次のスクリプトを前回のスクリプト【スクリプト:3-4】(Box2D_03_01.as)に追加します。
スクリプト:4-1 |
・プロパティ定義のセクションに追加 |
private var _bBox:b2Body; |
・コンストラクタの最後尾に追加 |
//▼箱(動体)の生成 |
前回作成した静体の作成手順に、質量の設定をプラスしたものであることが分かっていただけると思います。
箱のサイズ、床との位置の関係は次の画像のようになっています。

ここまでのスクリプトの全体像は次のようになります。追加部分は青で表示してあります。また、ドキュメントクラス名の変更に伴い変更した部分を赤で表示してあります。
スクリプト:4-2 |
//Box2D_04_01.as |
→ここまでのファイル【Box2D_04_01.zip】
今回は2ページ構成です。次はようやく表示について。
[2ページ目→]