狠狠撸

狠狠撸Share a Scribd company logo
Box2D 今昔物語 rch850 [ りちゃ ]  2009/04/25 Flex3 勉強会第 66 回 @ 北陸
自己紹介 ハンドルネーム : rch850/ りちゃ rich850 だったりもする ソフトウェアエンジニア @ 福井 茨城->石川->福井 http://twitter.com/rch850
時は 2007 年末……
?
Box2DFlashAS3 !! Flash に物理エンジンが颯爽と登場 今までも APE があったけど、書きにくさから敬遠されていた GIGAZINE あたりにも登場 ぐぬぬ
なんなの? 2D 物理エンジン 本来は C++ のライブラリ その AS3 移植が Box2DFlashAS3 単に Box2D と言った場合は Box2DFlashAS3 を指すことが多い様子
して、その中身は
Ver. 1.4.2 public function CleanBodyList() { m_ contactManager. m_ destroyImmediate = true; // …… 戻り値は?
Ver. 1.4.2 public  virtual  function GetAnchor1():b2Vec2{return null}; public  virtual  function  GetAnchor2():b2Vec2{return null}; //  どういうことなの……
参考 :  よくある C++ コード class Hoge { int  m_ Value; public: virtual  void setValue(int i) { m_ Value = i; } };
コンパイルとおらね mxmlc でコンパイル通らず CS3 では大丈夫らしい コンパイルオプションいじってもおk 前途多難だなぁ
?
2008 年
2.0.0 大規模な API 変更 パッケージ名 クラスの追加、削除 阿鼻叫喚
2.0.1 バージョンが 0.0.1 上がっただけなのに主要 API の仕様変更 CreateStaticBody, CreateDynamicBody が CreateBody にまとめられた 阿鼻叫喚
2.0.2 まだ正式リリースではないっぽい 阿鼻叫喚(予想)
2009 年
テオヤンセン展 Twitter で「テオヤンセン展」という言葉をぼちぼち見かけるように ておやんせん ておやんせん ておやんせん …… ん?
!?
というわけで见に行ってきた
最近 北海道を落とすとどう跳ねるのか? http://d. hatena .ne. jp / nitoyon /20090415/ hokkaido
デモ
Special Thanks http://sazameki.org/
概念
Body 定義 World Body 1 Shape 定義 Body 2
言葉で説明すると まず世界がある 世界が質点を与える 質点に形状を与えて剛体にする 何でこんなに冗長? C++ のライブラリだから……だと思う
World bd1 b1 sd1 bd3 b3 sd3 bd2 b2 sd2
World 物理シミュレーションが展開される世界 影響範囲と重力を定める Body はこの中に生成される
[Point] 単位 MKS 長さ :  メートル 質量 :  キログラム 時間 :  秒 勝手に決めることもできるが、よく分からなくなるのでおすすめしない
Body 定義 座標と速度を定義する 質点のこと(?) b2BodyDef クラス これを World に与えて Body を作る
Body いわゆる物体、それっぽく言うと剛体 Body の定義と Shape の定義から生成される 静的な Body と動的な Body がある b2Body クラス
Shape 定義 形状やその特性を定義する 摩擦、弾性 Body に Shape 定義を与えることにより、物体に形状が生まれる b2ShapeDef クラス 実際は b2PolygonDef や b2CircleDef を使う 実は Shape 定義から Shape を作れるが、 Body ほど重要ではない
その他機能 Joint 物体と物体をつなぐもの Debug Draw Box2D 唯一の画面出力機能 Contact Listener 接触(衝突)判定
続きは Web で 公式マニュアル http://www.box2d.org/manual.html Box2D で ActionScript 物理プログラミング http:// gihyo . jp /dev/feature/01/box2d

More Related Content

Box2D 今昔物語