1

物理学にbox2dを使用してJavaゲームを開発しています.ヘリコプターを持っています.ex:

ここに画像の説明を入力

設定して重力を減らしました:

body.setGravityScale(0.03f);

そのため、少し現実的に機能します (重力の影響を少しだけ受け、空中に浮かんでいます)。

それを上下左右に動かすには、コントローラーがあります。それが私のヘリコプターの制御方法です。

body.applyLinearImpulse(new Vector2(pValueX * 3, pValueY * 3), mainBody.getWorldCenter());

pValueX と pValueY が 1 または -1 の場合 (上/下、左または右の方向)

それはうまく機能しますが、今はより現実的な効果を達成しようとしています。ヘリコプターを左右に動かすときに、実際のヘリコプターのように機能するように少し傾けたいと思っていましたが、適切な方法を見つけることができませんでした。適用してみました体のさまざまな部分に力を加えますが、左または右に押し続けると、ヘリコプターが 360 度回転します。

4

3 に答える 3

1

できることは、2 つの定数を maxForceLeft と maxForceRight として定義するだけです。左を押すと、ヘリコプターのコックピット部分に力を加え、maxForceLeft と比較し続けます。その値に達したら、力の適用を停止します。右ボタンについても同じことを行い、ヘリコプターのテール ローター部分に力を加えます。これにより、360 度の回転を避けることができます。ヘリコプターに必要な効果の種類に応じて、力を上向きまたは下向きに適用できます。

于 2013-09-03T05:55:04.060 に答える