缓动至阶梯值

我目前正在用lua(在c++引擎上)开发这个节奏游戏,并且在尝试保持当前播放曲目的一致播放指针位置方面遇到了麻烦。

引擎提供的播放指针位置是以步长更新的,因此我每2帧、3帧或4帧便更新一次。但我需要一个稳定的播放指针位置,以便精灵可以平滑地随节奏移动等等。

因此,我会跟踪自己的播放指针变量,其中将其初始化为0,然后不断添加增量时间。这个变量最终会与实际播放指针失去同步,因此每次我获得新的播放指针(或“新步骤”),我就使用这两个之间的平均值来校正我的变量。

然而,这会导致移动不平滑。

如何使我的播放指针变量缓动进入阶梯指针?

这是我每帧都要执行的代码:

-- 向我的播放指针变量添加增量

playhead = playhead + delta_time

-- 如果有新的阶梯_playhead值,则校正我的播放指针

if stepped_playhead ~= last_stepped_playhead then
    playhead = (playhead + stepped_playhead) / 2
    last_stepped_playhead = stepped_playhead
end
点赞