你如何模拟不同质量的行星对船的影响?
我正在写一个类似于小行星的Flash游戏,它有一艘小型船在一个行星场中航行。行星不会相互施加力量,而只会在船上施力。
像这样的Java模拟,但有更大的行星:
答案 0 :(得分:6)
对于质量 m 的行星,距船舶 r 的距离,船舶将体验 加速度:
a = k m / r ^ 2,
其中k是某个常数,取决于您使用的单位。加速会 被引向地球。打破加速可能很方便 沿x轴和y轴进入其组件(假设您在2维中工作)。 如果行星相对于船舶在x-y平面上的角度 theta ,
a x = a cos( theta )
a y = a 罪( 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 < / strong> x delta_t ^ 2/2