Xcode 真实感跳跃算法

Xcode 真实感跳跃算法,xcode,physics,Xcode,Physics,我想让我的角色根据跳转按钮按下的距离跳转。我试着在按下跳转按钮时增加精灵的y位置,但这并不能给跳转带来真实的感觉。我的增量太恒定了。如何使y的增量在到达跳跃的顶部时减小 我会使用正弦函数来计算给定时间的高度。为了给人一种“真实”的感觉,它的形状大致与您想要的形状相同,并且在各种语言库中都可以作为库函数使用 不过,如果玩家从悬崖上跳下来,这就不起作用了,因为正弦函数一旦下降到起始标高以下,就会开始转向另一个方向 所以,要么你使用一种混合的方法,你在那一点上改变,要么你使用更现实的物理方法,也就是向

我想让我的角色根据跳转按钮按下的距离跳转。我试着在按下跳转按钮时增加精灵的y位置,但这并不能给跳转带来真实的感觉。我的增量太恒定了。如何使y的增量在到达跳跃的顶部时减小

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

不过,如果玩家从悬崖上跳下来,这就不起作用了,因为正弦函数一旦下降到起始标高以下,就会开始转向另一个方向

所以,要么你使用一种混合的方法,你在那一点上改变,要么你使用更现实的物理方法,也就是向下加速从球员离开地面的那一刻开始。在后一种情况下,你必须弄清楚按下按钮会发生什么


对于可玩性,使用正弦,然后在玩家返回原始高度的时间点,加速度停止,速度保持不变,这实际上可能是有利的。

我认为有几种方法可以实现这一点:

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

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

    特定高度的能量由公式
    E=mgh
    确定,其中
    m
    是物体移动的质量,
    g
    是重力常数,
    h
    是达到的高度。 请注意,获得某一跳跃所需的“发射”速度是由该速度下的动能决定的:
    E=mv²/2
    ,结果是
    h=v²/(2g)


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

    根据按下跳跃按钮的时间量,跳跃不同的时间量是不现实的。在现实生活中,所有的向上加速度都发生在脚接触地面的时候,之后,重力会持续向下加速。他说他想要一种真实的感觉,这在游戏中与真实的感觉是完全不同的。