Phaser 计算给定 y 点所需的 y 速度

Phaser calculate needed y velocity for given y point

在我的手机游戏中,主角需要跳到特定的 y 点,然后才能因重力再次开始下落。我如何计算在给定重力下达到(峰值)给定 y 位置所需的 y 速度?

我尝试用补间动画而不是街机物理来做到这一点,因为这正是我所需要的(随着时间推移的距离具有类似重力的效果),但性能并不好并且一直在溅射。

我目前使用的是 Phaser 2.6.2。谢谢!

游戏中有两种时间,cycle based time和deltaTime。

在基于循环的场景中,物理学不会改变延迟,因此最好的解决方案是:

您从数字序列开始,将重力与序列中的前一个数字相加,直到总和等于您想要的高度。

例如,我将使用高度 = 75、重力 = 5 和 jumpForce=unknown

(5+10+15+20+25)=75

达到此高度所需的跳跃力将是序列中的最后一个数字“25”。

在 deltaTime 场景中(如本例中所用),物理被抽象化以尝试适应时间。

因此,如果您有 5fps,您将有 5 cycles/second。如果您有 20 fps,则每秒有 20 个周期;因此,这种抽象使上述内容无关紧要。

而是使用高度 = 速度^2 / (2 * 重力) 的标准重力公式,因为这将更好地模拟 delta 时间引擎使用的公式。