我正在尝试制作一款自上而下的太空飞船游戏,我希望动作更加真实。 360度,有惯性、重力等。
我的问题是我可以毫无问题地让船以惯性移动 360°,但我需要做的是限制发动机的运行速度,同时不限制其他推/拉船的力。
因此,如果发动机速度最大为 500,并且船舶从重力井处以 1000 的速度行驶,则当发动机打开时,船舶不会达到 1500,但如果指向远离正在行驶的角度,那么它可能会减慢向下。
为了它的价值,我正在使用构造 http://www.scirra.com,而我所需要的只是它的数学。
感谢您的帮助,我因为试图解决这个问题而变得秃头。
取一页来自相关物理学 http://en.wikipedia.org/wiki/Special_relativity,其中对象不能超过光速 http://en.wikipedia.org/wiki/Speed_of_light#Upper_limit_on_speeds:
(请参阅下面我的工作 C++ 代码片段和运行演示 http://www.leftium.com/asteroid/[仅限 Windows]。)
- 将常数 c 设置为物体可以达到的最大速度(游戏中的“光速”)。
- 如果施加力会增加speed物体的加速度(速度变化)除以洛伦兹因子。if 条件在狭义相对论中并不现实,但它使飞船在高速行驶时更加“可控”。
- 更新:通常情况下,当船舶以接近 c 的速度行驶时,将很难操纵,因为改变方向需要将速度推过 c 的加速度(洛伦兹因子最终会将新方向上的加速度缩放到几乎为零。)为了恢复可操纵性,使用没有洛伦兹缩放时速度矢量的方向和缩放后的速度矢量的大小。
解释:
Definition of Lorentz factor, where v is velocity and c is the speed of light:
这是可行的,因为洛伦兹因子随着速度的增加而接近无穷大。物体需要施加无穷大的力才能穿过光速。在较低速度下,洛伦兹因子非常接近 1,接近经典牛顿物理学。
洛伦兹因子随速度增加的图表:
注意:我之前尝试通过使用摩擦力设置来解决小行星游戏中的类似问题。我在读到你的问题时才想出了这个解决方案^^
更新:我尝试实现这一点,发现一个潜在的缺陷:当接近光速 c 时,所有方向的加速度都受到限制,包括减速! (违反直觉,但是现实世界中狭义相对论会发生这种情况吗?)我想可以修改该算法以考虑速度和力矢量的方向...该算法已被修改以考虑矢量的方向,因此船舶在高速行驶时不会“失去可控性”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)