如何解决这个动画中的当前不透明度问题?

我正在尝试在Lua中进行一个简单的淡入/淡出动画。

我觉得这些变量应该足以解决我想每一帧设置的盒子的alpha /不透明度,但由于alpha = targetAlpha * animationPos乘以目标alpha为0,我在淡出时遇到了很多麻烦。

所有这些变量都是0-1之间的decimal值,表示alpha或%time completed。

  1. targetAlpha-动画结束时的alpha值。
  2. initialAlpha-动画初始化时盒子开始的alpha。
  3. animationPos-动画当前的位置(%time completed)
  4. currentAlpha-盒子的当前alpha。

也许我今天只是超级疲惫,但我已经尝试了似乎有亿万组合的这些变量,没有成功找到适合的方程式。

感谢任何帮助!

原文链接 https://stackoverflow.com/questions/69169522

点赞
stackoverflow用户10391157
stackoverflow用户10391157

你想要的是线性插值,它接受两个值ab,以及一个介于0和1之间的插值值f

function lerp(a, b, f)
    return a * (1 - f) + b * f
end

现在,您可以使用当前的动画进度在初始的alpha值和目标alpha值之间进行插值:

alpha = lerp(initialAlpha, targetAlpha, animationPos)
2021-09-13 22:35:57