Box2DFlash v2.1a 調査
世に公開されている物理エンジンライブラリを用いてのプログラミング法を学習すべく、Box2DFlash v2.1a を利用してみることに。
Box2DFlash
http://www.box2dflash.org/
Box2DFlash はバージョンごとに API が変化しているようで、最新の v2.1a に関しては以下のサイトが参考になります。
Box2D 2.1a Tutorial - Part 1(英語)
http://blog.allanbishop.com/box2d-2-1a-tutorial-part-1/
まずは Box2D の使用方法を学びつつ、Flash オーサリング環境上で制作したシェイプデータを、そのまま Box2DFlash の物体として再現するような処理を作成する事を第一目標としました。
成果物
以下のような 四角、丸、点(緑丸)の集合体、のムービークリップを Flash オーサリング上で用意します。
四角なら(box~)、丸なら(circle~)、多角形なら(polygon~)、といった具合にムービークリップ名には規則性を持たせ、ムービークリップ名称と形状・座標・角度に応じた Box2D の物質を生成するように処理を作ります。
例えば一番左上の紫色の四角形のムービークリップ名は box4_1_0_10 としており、数値の部分は以下の意味を持ちます。
4 : id
1 : 動作する物体であることを示す
0 : 反発係数
10 : 摩擦係数
反発係数と摩擦係数は処理内では 1/10 として計算されます。
処理作成後の再現結果は以下となります。
http://www.dango-itimi.com/blog/swf/139/preloader.swf
ムービークリップの名称を変更すれば、ソースコードを変更する事なく各物体の振る舞いを変更する事が可能です。また、ムービークリップ群を配置しているクラスは dynamic に設定しており、ソースコードを変更する事なく、自由にムービークリップを追加・削除する事ができます。(dynamic なクラスはバグの温床ともなるため、使用の際は注意が必要)
以後の予定
反発係数や摩擦係数をムービークリップ名で設定できるようにはしましたが、その仕様は削除する事になるかもしれません。物体1から10までを同じ反発係数や摩擦係数にしたい、という場合、専用のクラスを用意し、そのクラスと結びつけるほうがよいからです。また、反発係数や摩擦係数以外の物体に設定可能なパラメータはまだまだたくさんあり、全てのパラメータをムービークリップ名で設定可能にする、というのは大変で現実的ではありません。
[ FLASH ] [ tips ] [ update ] 投稿者 siratama : 2011年07月25日 12:38