有谁知道处理两个物体引力的教程?例如。一颗卫星被吸引到月球上(并且可能从它身边飞过)。
我有一个我正在开发的小型 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;
}