10.b2RevoluteJointDefで回転ジョイントをモータにする
回転ジョイントの設定でモーターにする
b2RevoluteJointDefクラスを使えば、回転ジョイント部分にモーターがあるように見せることができます。
以下のswfで左上のスタートボタンを押してみてください。回転体がモーターなどの動力により回転しているように見えますよね。
モーターのように回転させるための設定は「10.b2RevoluteJointDefで回転ジョイントを作る」で設定したb2RevoluteJointDefのインスタンス(jointDef)に以下の3行の設定を行います。
jointDef.Initialize(body, ground, body.GetWorldCenter());
jointDef.enableMotor = true;//追加
jointDef.motorSpeed = 0.5;//[radians/sec] //追加
jointDef.maxMotorTorque = 10;//[N・m] //追加
前ページの回転角の制限と同様、enableMotorというプロパティがあり、これをtrueにしておく必要があります。
回転体にどのようにボールが当たっても、回転体はmotorSpeedプロパティで設定した値の角速度を保とうとします。
maxMotorTorqueで指定したトルクの値により、いかにその指定角速度に近づけやすいかが変化します。
と文章で書いてもわかりにくいので、上のswfのmaxMotorTorqueの値を大きくしただけの下のswfをご覧ください。
ほら、下のswfはボールが当たっても、強力に回転するぞ!って感じでしょ?
2010年1月25日
→11.b2RevoluteJointで回転ジョイント情報を得る/設定する
10.b2RevoluteJointDefで回転ジョイントの角度を制限する←