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

标签 javascript phaser-framework

在我的手机游戏中,主 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/

相关文章:

javascript - JS正则表达式匹配字符串中的所有单词

javascript - 在 Jest 中使用 beforeEach 函数有什么好处

javascript - 用 jest 测试 React 中的异步方法

javascript - 编写片段着色器 : cannot make sense of how the uniforms are defined

html - Canvas 游戏在调整大小时不适合父 div

javascript - 播种时未找到 "entity"的元数据

javascript - Highcharts 中心在 x 和 y 轴偏移上

javascript - Webpack 4,如何将一个模块导入另一个都是入口点的模块?

javascript - Phaser 3 俄罗斯方 block 克隆,但方 block 不会落地

javascript - 为相位器游戏添加 requirejs 后未调用 Typescript window.onload