大家好,我目前正在开发一个空间模拟游戏遇到了问题, namely 是关于运动行星的编程问题。

对于每个月球/行星的椭圆轨道,我简单地将离你最近的物体设为静止,然后将所有物体围绕这个物体旋转。这很好地实现了目的,什么都没考虑到运动的时候不需要计算任何东西。这也是 Kerbal Space Program 做的。我的问题在于行星围绕自己的轴旋转问题:

真正的火箭(还有 KSP 中的火箭)在发射时,能够获得额外的推进,因为它已经被自己行星的推进力加持。在某些情况下,你可以根据行星的旋转速度和地面之间的速度匹配,使得你能够“悬停”在地面某个位置,旋转一致以实现地面轨道。所有这些操作都是因为行星在旋转的前提下,所以如果行星没有旋转,我就不知道该如何实现这些操作。

KSP 怎么做到的呢?他们是如何实际移动火箭的呢?我尝试了,但是应用了相同的线性速度将火箭带到世界空间中时遇到了问题,包括不容易地控制旋转时使玩家在固地时正常移动和在空气中时“自由”移动。玩家落地时的过渡总是会使物理行为变得很奇怪。

那么,你们是怎样在游戏中实现行星自转的呢?