現在、物理エンジン (Farseer for XNA) を使用する単純なゲームを開発しています。
キャラクターが地面を歩いたり、回転せずにプラットフォームをジャンプしたりできるようにするにはどうすればよいですか。
体の位置と回転を更新する必要があるためです。これは物理オブジェクトであるため、通常どおりに応答し、それ自体が回転します。
どうすれば修正できるか知っている人はいますか?
Farseer 2.1 の場合、以下を設定できます。
body.MomentOfInertia = float.PositiveInfinity;
Farseer 3.0 には固定回転のフラグがあるようで、内部で同じことを行っているようです。
body.FixedRotation = true;
物理演算の更新後に回転もゼロに設定しましたが、念のため:
body.Rotation = 0;
物理演算の更新が実行された後、「気に入らない」物理演算値を変更することを恐れないでください。ほとんどのゲームは、かなり多くのことを偽ったりごまかしたりします。