頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


Box2Dで回転運動を減衰させたい

Box2Dでbody(四角でも丸でもなんでもいい)を作ったとします。

これをRevoluteJointでgroundに固定する、とします。

このbodyを回転させると、全然減衰せず、延々と一定の角速度で回転するんです。
それはそれでいいんだけど、現実っぽくちっとは減衰して欲しい、と思いまして。
イメージとしては軸受け部分の摩擦で減衰する、って感じ。
となるとやはりRevoluteJoint関連クラスにそういうのを設定するのがあるのかな、とb2RevoluteJointDef、b2RevoluteJoint クラスあたりのソースを見るものの、それっぽいプロパティもなさそうだし、、、

困ったなぁ、仕方ないからbodyの上部に重石を設定して、この重しはPrismaticJointで上下方向のみ移動できるものとして、この重石との摩擦で減衰させる、なんてことを考えてしまいました(^^;

ところが、そんなばかげたアイデアを実行した後で、b2BodyDef クラスに
angularDamping
というプロパティを発見、これを設定すると希望の動きに!
物体はめでたく角速度を落としつつ、停止したのでした。

linearDamping
なんてプロパティもあるから直線運動についても減衰させることができるのでしょう(やってないけど)。


b2BodyDefのプロパティということで、「軸受けの摩擦」というよりは角速度に対する抵抗による減衰って感じなんでしょうかね。

<< どうした?火狐  TopPage  引越し準備 >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/208-0b78827d




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad