2 つのオブジェクトの引力を扱うチュートリアルを知っている人はいますか? 例えば。衛星が月に引き寄せられます (そして、月を通り過ぎる可能性があります)。
私が取り組んでいる小さな Java ゲームがあり、彼の機能をそのゲームに実装したいと考えています。
2 つの物体間の引力の公式を知っていますが、それをゲームで使用しようとしても何も起こりませんか?
画面上に 2 つの物体があり、そのうちの 1 つは常に静止しており、もう 1 つは静止している物体の検出範囲内に入るまで一定の速度で直線的に移動します。どの時点で、静止オブジェクトに描画する必要があります。まず、2 つのオブジェクト間の距離を計算し、それらの質量とこの距離に応じて、x 座標と y 座標を更新します。
しかし、私が言ったように、何も起こりません。数式を正しく実装していませんか?
これまでの内容を示すために、いくつかのコードを含めました。これは、パーティクルがゲートの検出範囲に衝突したときのインスタンスであり、ゲートの検出範囲に向かって引き寄せられ始めます。
for (int i = 0; i < particle.length; i++)
{
// **************************************************************************************************
// GATE COLLISION
// **************************************************************************************************
// Getting the instance when a Particle collides with a Gate
if (getDistanceBetweenObjects(gate.getX(), particle[i].getX(), gate.getY(), particle[i].getY()) <=
sumOfRadii(particle[i].getRadius(), barrier.getRadius()))
{
particle[i].calcGravPull(particle[i].getMass(), barrier.getMass(),
getDistanceBetweenObjects(gate.getX(), particle[i].getX(), gate.getY(), particle[i].getY()));
}
そして、移動を行うための Particle クラスのメソッド
// Calculate the gravitational pull between objects
public void calcGravPull(int mass1, int mass2, double distBetweenObjects)
{
double gravityPull;
gravityPull = GRAV_CONSTANT * ((mass1 * mass2) / (distBetweenObjects * distBetweenObjects));
x += gravityPull;
y += gravityPull;
}