您将如何模拟不同质量的行星对船的影响?
我正在写一个类似于小行星的Flash游戏,它有一艘飞船驶过行星 Realm 。行星不会在彼此上施加力,而只会在船上。
类似于以下Java模拟,但行星较大:
http://dan-ball.jp/en/javagame/planet/
最佳答案
对于质量为 m 的行星,在距船 r 的距离处,船将经历
加速:
a = k m / r ^ 2,
其中k是一个常数,取决于您使用的单位。加速度将
指向地球。分解加速度可能很方便
沿x和y轴插入其组件(假设您在二维中工作)。
如果行星相对于飞船在x-y平面上的 Angular 为 theta ,
a x = a cos( theta )
a y = a sin( theta )
对于多个行星,您可以仅逐分量添加加速度。
如果船舶在 t 时间具有初始速度 v x,则速度为
下一步 t + delta_t 将是:
v x + a x * delta_t
如果该船在时间t处在 p x的初始位置,则该位置
在 t + delta_t 处为:
p x + v x delta_t + a x delta_t ^ 2/2
另请:Equations of motion