如何解决此动画中的当前不透明度问题?
How can I solve for current opacity in this animation?
我正在尝试在 Lua 中制作一个简单的淡入淡出 in/out 动画。
我觉得这些变量应该足以解决 alpha/opacity 我想在每一帧都设置框,但是我在淡出方面遇到了很多麻烦,因为 alpha = targetAlpha * animationPos
始终 returns 0 乘以目标 alpha 0.
所有这些变量都是 0-1 之间的十进制值,表示 alpha 或完成时间百分比。
targetAlpha
- 动画结束时的 alpha 值。
initialAlpha
- 动画初始化时盒子开始的 alpha。
animationPos
- 动画的当前位置(%time completed)
currentAlpha
- 框的当前 alpha。
也许我今天真的很生气,但我一直在尝试这些变量的十亿种组合,以找到有效的方程式,但没有成功。
感谢任何帮助!
你想要的是一个linear interpolation,它有两个值a
和b
,以及一个介于0和1之间的插值f
。
function lerp(a, b, f)
return a * (1 - f) + b * f
end
现在您可以使用当前的动画进度在初始和目标 alpha 之间进行插值:
alpha = lerp(initialAlpha, targetAlpha, animationPos)
我正在尝试在 Lua 中制作一个简单的淡入淡出 in/out 动画。
我觉得这些变量应该足以解决 alpha/opacity 我想在每一帧都设置框,但是我在淡出方面遇到了很多麻烦,因为 alpha = targetAlpha * animationPos
始终 returns 0 乘以目标 alpha 0.
所有这些变量都是 0-1 之间的十进制值,表示 alpha 或完成时间百分比。
targetAlpha
- 动画结束时的 alpha 值。initialAlpha
- 动画初始化时盒子开始的 alpha。animationPos
- 动画的当前位置(%time completed)currentAlpha
- 框的当前 alpha。
也许我今天真的很生气,但我一直在尝试这些变量的十亿种组合,以找到有效的方程式,但没有成功。
感谢任何帮助!
你想要的是一个linear interpolation,它有两个值a
和b
,以及一个介于0和1之间的插值f
。
function lerp(a, b, f)
return a * (1 - f) + b * f
end
现在您可以使用当前的动画进度在初始和目标 alpha 之间进行插值:
alpha = lerp(initialAlpha, targetAlpha, animationPos)