有誰知道一個教程,將處理兩個物體的引力拉?例如。一顆正在被月球吸引的衛星(可能還有吊索彈過它)。引力拉伸
我有一個小型的Java遊戲,我正在努力,我想實現他的功能。
我有兩個物體之間的引力吸引力的公式,但是當我嘗試在我的遊戲中使用它時,什麼都沒有發生?
屏幕上有兩個物體,其中一個物體總是靜止不動,而另一個物體則以恆定速度沿直線移動,直到達到靜止物體的檢測範圍內。在哪一點它應該被吸引到靜止的物體上。 首先我計算兩個物體之間的距離,並根據它們的質量和距離更新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()));
}
而在我的粒子類中的方法做運動
// 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;
}
打倒我吧。:^)但是我建議不要轉換成角度,直接從分離矢量獲取加速度矢量會更容易,速度更快。 – DSM 2011-04-08 14:59:24
非常感謝您的快速回復,這聽起來像是會做到這一點。當我回家時,我會放棄這一切。 – heyred 2011-04-08 15:16:57