3

私は、主要なメカニズムとして重力を持つ 2D ゲームを Python で書いています。

私はいくつかのゲーム エンジンを作成しましたが、実際に行き詰まった部分は、各質量の X 速度と Y 速度に何を追加するかを決定することです。

たとえば、円 A と円 B があり、それぞれに位置、速度、質量があるとします。ニュートン重力をシミュレートして、それぞれがかなり現実的に他方に向かって引っ張られる必要があります。どうすればこれを達成できますか?

はい、私は測定単位について非常にあいまいです。後で、式に合うように変数を変更して実験できます。

4

2 に答える 2

3

各ボディの運動方程式を解く必要があります。それらは、結合された一次常微分方程式のセットとして記述されます。x 方向と y 方向にそれぞれ 1 つの方程式を作成します。これにより、2 つの物体間の重力をそれぞれの質量で割った関数として加速度が得られます。

加速度、速度、および変位の関係を知っています。

最終的には、連成した 4 つの常微分方程式を解く必要があります。タイム ステップ ソリューションを使用して、解を時間内に進めます (明示的または暗示的に選択できます)。

于 2012-07-25T00:27:50.920 に答える
1

ゲーム内で量子化された時間単位、時計の「刻み」があると仮定すると、必要に応じて、各ボディに速度ベクトル (「刻み」ごとに移動する量と方向) を与えます。ティックごとに、距離に基づいて他のボディの速度ベクトルをいくらか変化させます (質量で割った力をボディに加えます)。次に、時計が時を刻むたびに、物体は速度ベクトルに従って移動し、物体にかかる正味の力に基づいて速度ベクトルが変化します。加速とモーションのどちらが最初に発生するかを決定する限り、ティックが十分に小さければ問題ありません。

于 2012-07-25T00:22:36.957 に答える