物理エンジンライブラリ Box2DFlashAS3 ジョイント2(直動ジョイント・歯車ジョイント)

直動ジョイントと歯車ジョイント(ギアジョイント)についてのメモ。
サンプルコードでは、回転ジョイントも使ってます。

直動ジョイント(PrismaticJoint)

  • 物体がリフトのように一定方向に動くジョイント。
  • 軸に沿って一定方向に動く。
  • モーターを使って、動かすこともできる。
  • 物があたっても回転しない、軸に沿った方向にしか動かない。

使い方

  1. 繋げる2つの物体(b2Body)を指定
  2. 繋げる場所(座標)(b2Vec2)を1ヶ所指定
  3. 軸(座標(ベクトル))(b2Vec2)を1ヶ所指定
  4. ジョイントの性質(b2PrismaticJointDef)を設定(モーター使用等)
  5. ジョイントの初期化→ジョイント登録

歯車ジョイント(GearJoint)

  • その名の通り、歯車のような働きをするジョイント。
  • 繋げたもの同士で、互いの運動量が影響しあう。
  • 実際の歯車のように運動方向は逆に伝わるっぽい(右回転→左回転)。
  • 繋げた物体の、運動量を合計して、比率を決めて運動量を割り振るっぽい。
  • 繋げられるのは、回転ジョイントと直動ジョイントだけ。

使い方

  1. 繋げる2つの物体(b2Body)を指定(回転ジョイントか直動ジョイントで繋いであるもの)
  2. 繋げる2つの物体のジョイント(b2Joint)を指定
  3. ジョイントの性質(b2GearJointDef)を設定(比率等)/li>
  4. ジョイント登録

サンプルコード

実行結果(きのこの崖)
きのこの崖

※Box2Dのまとめたクラス(Box2DBase)を作って、基本クラスで使ってます。ソースは物理エンジンライブラリ Box2DFlashAS3(基本)にあります。