fps动作系统5:角色冲刺

文章目录

  • 输入
    • 键盘
      • started
      • completed
  • 速度的过渡
    • f插值到
      • 原理
    • 使用插值实现速度到目标速度的过渡。
  • 疑问
    • 减速时,为什么600到300很慢,而300到0很快。

输入

键盘

started

按下时触发,此时值为true

completed

松开时触发,此时值为false

速度的过渡

如果没有过渡,那么速度会很快直接到最大速度,我们希望速度到最大速度之间有一个过程。

f插值到

输出 current 和 target 的中间值。
插值是一个固定值,并不是一个随时间变换的值。

原理

相当于从current 到 target 分成了 delta time 份,然后从current 开始 加上 inter speed 份。
也就是 current + (target - current) / delta time * inter speed.

使用插值实现速度到目标速度的过渡。

上文说过,插值是固定的,那么如何使速度逐渐逼近目标呢。
首先,插值是无法实现速度逐渐逼近目标的。
但可以实现最大速度逐渐逼近目标。而速度又可以自动达到最大速度,这样,通过逐渐的控制最大速度从而达到控制速度。

接着,如何使最大速度变化呢。
因为速度是变化的,所以就可以通过速度变化来使最大速度变化。
这样,速度变化驱动着最大速度变化,从而实现了速度的缓慢过度。
其实速度到最大速度之间依旧是很快过渡,只不过我们是通过速度慢慢给出最大速度,从而实现过渡。

疑问

减速时,为什么600到300很慢,而300到0很快。

懂了,是因为600到300我还按着w,一直有加速度,没有减速度,所以还是跟着最大速度慢慢降下来。而到0快的原因则是没有按w,之间减速到0了。
w就是加速度,没w就是减速度。

你可能感兴趣的:(fps,虚幻)