2
太空船动态推进器平衡
在我的游戏中,太空飞船是一种由玩家打造的装置,可以在任意位置,任意旋转地安装任意数量的推进器。我目前有一些肮脏的代码可以将船旋转到给定的角度(加速和减速)。 这是一个对称船面对红线指向的示例,被告知向左旋转。 但是,正如您想象的那样,取决于玩家将推进器放在何处,有时会出现不希望的线性力影响飞船的情况。在这种情况下,船开始前进。 我正在详细说明是否有可能找到推力器可以施加的最大推力而不引起线速度。(在上述情况下,这将是没有的,因为没有什么可以抵消来自后推力的力,而前推力会互相残杀)。 到目前为止,我想出了一个公式来确定“转弯效率”,例如,相对于线性运动,会引起多少旋转。 a-推进器b的位置矢量b-推进器b的位置矢量v1-推进器a的力v2-推进器b的力 efficiencyDelta = a.cross(v1)/ | v1 | -(a.cross(v1)+ b.cross(v2))/ | v1 + v2 | ,基本上是“ a.cross(v1 * t)/ | v1 |” 应该是转弯效率。然后,我们将其与推进器的转向效率相减,以查看是否值得使用新的推进器。 当我意识到推进器不是应该打开/关闭,而是可以将其推力从0更改为1时出现的。当玩家希望飞船前进时该怎么办。当然,需要平衡旋转/移动的量。 我不是火箭科学家,所以我希望有人可以告诉我,是否甚至可以这样计算每个推进器的油门,并向我推正确的方向。 感谢您抽出宝贵的时间!/金