在我的手机游戏中,主 Angular 需要跳跃到特定的 y 点,然后再因重力而开始下落。如何计算在给定重力下达到(峰值)给定 y 位置所需的 y 速度?
我尝试使用补间而不是街机物理来实现此目的,因为这正是我所需要的(随着时间推移具有类似重力效果的距离),但性能不佳并且不断出现溅射现象。
我目前使用的是 Phaser 2.6.2。谢谢!
最佳答案
游戏中有两种时间,基于周期的时间和deltaTime。
在基于循环的场景中,物理原理不会改变以考虑滞后,因此最佳解决方案是:
您从数字序列开始,将重力与序列中的前一个数字相结合,直到总和等于所需的高度。
举个例子,我将使用 height = 75、gravity = 5、jumpForce=unknown
(5+10+15+20+25)=75
达到这个高度所需的跳跃力将是序列中的最后一个数字,即“25”。
在 deltaTime 场景(如本例中使用的)中,物理原理被抽象以尝试调整时间。
所以,如果你有 5fps,你就会有 5 个周期/秒。如果你有 20 fps,那么每秒就有 20 个周期;因此,这种抽象使得上述内容变得无关紧要。
而是使用高度 = 速度^2/(2 * 重力) 的标准重力公式,因为这将更好地模拟增量时间引擎使用的公式。
关于javascript - Phaser 计算给定 y 点所需的 y 速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53071091/