2

我希望我的角色根据按下跳跃按钮的时间来跳跃。当按下跳转按钮时,我尝试添加精灵的 y 位置..但这并没有给跳转带来逼真的感觉。我的增量太恒定了。如何使 y 的增量在到达跳跃的顶部时减小?

4

3 回答 3

1

我会使用正弦函数来计算给定时间的高度。它大致具有您想要的形状,以便给人一种“逼真”的感觉,并且它可以作为各种语言库中的库函数使用。

除非如果玩家从悬崖上跳下,这不起作用,因为一旦正弦函数下降到起始高度以下,它就会开始转身并转向另一个方向。

所以,要么你使用混合方法,在那个点改变,要么你使用更真实的物理,即向下加速从玩家离开地面的那一刻开始。在后一种情况下,您必须弄清楚按住按钮会发生什么。

对于可玩性,使用正弦实际上可能是有利的,然后说在玩家返回原始高度的时间点,加速度停止并且从那里向下速度保持恒定。

于 2012-08-27T05:53:12.057 回答
1

我想到了几种方法来实现这一点:

  1. 想象一下,您的角色有一个“燃料”有限的喷气背包。然后,加速度与剩余燃料成反比,因此他以高加速度开始并减速,直到电池组耗尽“燃料”或用户松开跳跃按钮。此时加速度应恢复为重力(负),角色开始下落。(至少在这个故事中,用户在按住跳转按钮时继续上升是有意义的)。
  2. 使用具有递减(但为正)斜率的非线性函数将跳跃的持续时间映射到 y 值,例如正弦函数、对数函数或平方根。这是(1)的更一般的情况。
于 2012-08-27T05:56:08.673 回答
0

想象一下跳跃按钮会为玩家角色的“跳跃能量”充电(在现实世界中,您可以弯曲膝盖以跳得更高,从而有效地将更多能量带入跳跃中)。

一定高度的能量由公式确定E = m g h,其中m是运动物体的质量、g重力常数和h达到的高度。请注意,获得某个跳跃所需的“发射”速度取决于您在该速度下的动能:E = m v²/2,结果h = v²/(2g)为二次公式。

因此,我建议尝试二次(有界,您不希望人们跳到不可能的高度)或跳跃高度h随时间的线性增长。

于 2015-06-24T13:14:36.320 回答