Javascript 相位器计算给定y点所需的y速度

Javascript 相位器计算给定y点所需的y速度,javascript,phaser-framework,Javascript,Phaser Framework,在我的手机游戏中,主人公需要跳到一个特定的y点,然后才能因为重力再次摔倒。如何计算在给定重力下到达(峰值)给定y位置所需的y速度 我试着用tween而不是街机物理来做这件事,因为这正是我所需要的(随着时间的推移,距离产生了重力效应),但性能不好,而且经常出现溅射 我目前正在使用Phaser 2.6.2。谢谢 游戏中有两种时间,基于周期的时间和deltaTime 在基于周期的场景中,物理不会改变以解释滞后,因此最佳解决方案如下: 从数字序列开始,将重力与序列中的前一个数字合成,直到总和等于所需高度

在我的手机游戏中,主人公需要跳到一个特定的y点,然后才能因为重力再次摔倒。如何计算在给定重力下到达(峰值)给定y位置所需的y速度

我试着用tween而不是街机物理来做这件事,因为这正是我所需要的(随着时间的推移,距离产生了重力效应),但性能不好,而且经常出现溅射


我目前正在使用Phaser 2.6.2。谢谢

游戏中有两种时间,基于周期的时间和deltaTime

在基于周期的场景中,物理不会改变以解释滞后,因此最佳解决方案如下:

从数字序列开始,将重力与序列中的前一个数字合成,直到总和等于所需高度

例如,我将使用height=75、gravity=5和jumpForce=unknown

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

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

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

所以,如果你有5fps,你将有5个周期/秒。如果你有20帧每秒,你将有20个周期每秒;因此,这种抽象使上述内容变得无关紧要


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

我不确定我是否不理解您的逻辑,或者它不适合我的情况。我使用的重力是1400,但我需要行驶的距离是440英尺高度=速度^2/(2*重力)。所以:JumpVelocity=1110。第二个非常接近!当我将重力增加一倍或三倍时(当我将重力增加一倍时,它大约短了8个像素),它只是有一点小偏差,但我认为当我提高所有东西的速度时,我可以对它进行微调!请编辑您的答案,我会将其标记为正确答案:)误差幅度来自四舍五入。Delta time通常被认为对游戏开发更有利,因为它可以防止延迟减慢游戏体验,但在精确建模物理时,它也会带来一些倒退。考虑到这一点,在你的水平设计,记录你的跳跃高度不滞后,然后尝试落后你的电脑与其他东西,创造一个高滞后的情况下。如果这会导致不同的跳跃高度,那么请确保所有“可通过”区域都可以达到较低的跳跃高度,并且所有不可通过的区域都可以阻挡较大的跳跃高度。