0

私は画像でこのような車両を作成しています:

ここに画像の説明を入力

ご覧のとおり、次のものがあります。

1) 車体本体 (赤四角) 2) 車輪 3) 車両アーム (黒四角)

アームは、表示されているアンカーの中心点で回転ジョイントを使用して車両本体に接続されています。このアームは上下に動かすことができます (次の角度制限で)。

私の質問は、角度インパルスを適用してこのアームを動かしているということです。動作し、アームを動かすことはできますが、デフォルトの位置まで下がり続けます。ジョイントを「無効にする」方法に苦労しているため、重力の影響を受けないようにコントローラーを使用してのみ腕を動かすことができるため、プレーヤーは腕をわずかに上に動かすことができ、腕は落ちる代わりにこの位置にとどまる必要があります。

どんな助けでも素晴らしいでしょう、ありがとう。

4

1 に答える 1

3

重力の影響を無効にする最善の方法はgravityScale、b2BodyDef でゼロに設定することです。しかし、このパラメーターは Box2D の最後のバージョンでのみ表示され、おそらく、Java ポートにはそのようなものはありません

とにかく、重力に関するあなたの考えはあまり良くないと思います。それは物理的ではなく、現実的ではなく、このために関連する問題を見つけることができます。たとえば、重力以外の別の力が腕に影響を与えるとしたらどうでしょうか? それはすべて同じ問題を引き起こします。

私の意見では、アームを作るためのより良い方法 - 回転関節のモーターを使用してください。「回転ジョイントモーター」セクションにあるチュートリアルがあります。モーターを有効/無効にし、速度の実行時間を変更して、車両ロジックをシミュレートできます。さらに、実行時のジョイントの上限/下限を変更して、アクションが実行されていないときに腕が動かないようにすることも役立つ場合があります。これを実現する別の方法 - モーター速度をゼロに設定すると、モーターがある種の摩擦力に変換されます。

于 2013-01-28T18:37:53.113 に答える