Gravity2Dクラス

・Box2Dを簡単に扱えるようにする為のクラスです。Gravity2Dを使う利点は、プログラムが簡単に記述できる、という点だけではありません。Box2Dでは座標をコード上で指定しなくてはいけない為、物理演算という特性上、ちょっとでも複雑なレイアウトを考えたときに、何度も位置をずらしては実行、を繰り返しながら調整していかなくてはいけないのでとっても時間がかかります。Gravity2Dでは、静的(または動的)に配置したMovieClipの座標をそのまま物理座標として自動設定してくれるため、Flash CS3 / CS4 / CS5 を使ってGUIで物理デザインができます。更に、各オブジェクト同士や背景への回転ジョイントも自動的に座標を設定してくれるメソッドも用意されている為、デザイン時の思考錯誤の時間が大幅に削減できます。もちろん、個別にコード上で座標を指定して設定する事もできます。

コード

http://www.libspark.org/browser/as3/Gravity2D/trunk/src

紹介デモ

Gravity2D:基本メソッド/プロパティの説明 http://polig.daa.jp/Gravity2D_demo1.html

GravityObject2D:基本メソッド/プロパティの説明 http://polig.daa.jp/Gravity2D_demo2.html

GravityObject2D:ジョイント関係のメソッド説明 http://polig.daa.jp/Gravity2D_demo3.html

GravityGroup2D:グループ一括設定のメソッド説明 http://polig.daa.jp/Gravity2D_demo4.html

番外編:物理演算の形状の説明と表示上の形状を変える小技 http://polig.daa.jp/BOX2D_tech1.html

サンプル

http://www.libspark.org/browser/as3/Gravity2D/trunk/src/examples

使い方

・Box2Dと同じフォルダに、Gravity2D.as / GravityObject2D.as / GravityGroup2D.as の3つのファイルを配置してお使いください。

・大まかな使い方については、紹介デモをご覧ください。

・基本的な使い方については、サンプルをご覧ください。

・具体的な使い方については、クラスのソースコードをご覧ください。

動作確認環境

・Box2DFlashAS3 v2.0.2

・Flash CS3 / CS4

更新履歴

・2010/8/25 Gravity2DコンストラクタのTop/Leftを変更した場合、Width,Heightがおかしくなるバグを修正(v.1.0.1)

・2010/8/21 番外編のデモを追加

・2010/8/18 GravityGroup2Dのコンストラクタ引数の順番を変更

・2010/8/17 サンプルをCS3形式に変更

・2010/8/16 公開開始

既知の不具合

GravityObject2Dでx,y座標を直接指定して移動させると、その後setWakeUp()メソッドを実行しても、物理演算されない。(デモ2のTween移動後)

GravityGroup2Dで個別にインスタンス名を設定した場合、インスタンス化される順番が一定にならない場合がある。これにより、setJointLimit()や、setMotor()を設定した時に、±が逆に設定されることがある。

・円形の場合、高さと幅を偶数の整数にしないと、円形ではなく四角形と認識され物理計算してしまう。

関連:開発者ブログ記事

http://flash.polig.daa.jp/?eid=1382070

http://flash.polig.daa.jp/?eid=1383404