有谁知道一个教程,将处理两个物体的引力拉?例如。一颗正在被月球吸引的卫星(可能还有吊索弹过它)。引力拉伸
我有一个小型的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