0

主な問題は、box2dではオブジェクトが自動的に下部にドロップするため、オブジェクトを飛ばして同じ高さに保ちたいということです。

これが私がいくつかのウェブから得た私のコ​​ードです:

gravityOffset.Multiply(-body.GetMass());
body.ApplyForce(gravityOffset, body.GetWorldCenter());

私のオブジェクトは飛んでいますが、飛んで行き、ロケットのように戻ってくることはありません。

私はこのようにコードを変更しました:

gravityOffset.x = 0;
gravityOffset.y = 0;
body.ApplyForce(gravityOffset, body.GetWorldCenter());

しかし、それでもゆっくりと上昇します。

そして、飛行時間が終わったら、また落下させたいです。誰かが助けることができますか?

4

1 に答える 1

0

ロケットを空中に発射して、それを元に戻したい場合は、次のようにします。

body.ApplyImpulse(velocity,body.GetWorldCenter());

ただし、発射して忘れるだけでなく、ロケットをより細かく制御したい場合は、少し難しくなります。

その場合、おそらくいくつかのステアリング動作を使用し、シーク関数を使用してベクトルに向かって移動させます(その後、ロケットを追跡させるために、このベクトルをどこにでも移動し続けることができます)。

于 2012-04-16T05:44:37.487 に答える