动画
- 需要version>=5
效果常量
AnimLinear=1
AnimEaseIn=2
AnimEaseOut
AnimEaseInOut
AnimEaseInCubic
AnimEaseOutCubic
AnimEaseInOutCubic
AnimEaseInQuart
AnimEaseOutQuart
AnimEaseInOutQuart
AnimEaseInQuint
AnimEaseOutQuint
AnimEaseInOutQuint
AnimEaseInSine
AnimEaseOutSine
AnimEaseInOutSine
AnimEaseInExpo
AnimEaseOutExpo
AnimEaseInOutExpo
AnimEaseInCirc
AnimEaseOutCirc
AnimEaseInOutCirc
AnimEaseInBack
AnimEaseOutBack
AnimEaseInOutBack
AnimEaseInElastic
AnimEaseOutElastic
AnimEaseInOutElastic
AnimEaseInBounce
AnimEaseOutBounce
AnimEaseInOutBounce
anim_effect
anim_effect(effect, x)
根据当前x,返回按照指定的动画类型函数计算的数值。x通常采用[0,1.0]
anim_effect(AnimEaseInBounce,curtick/allticks)
anim_calc
anim_effect(effect, apos,zpos,alltick,curtick)
根据当前curtick,计算动画位置。返回当前tick对应的pos
- effect: 选择动画效果函数
- apos: 动画起始位置
- zpos: 动画结束位置
- alltick: 动画总时长
- curtick: 当前时长
展示所有动画曲线的例子
coloX-4
name: test
__lua__
local animeffect={
'AnimLinear',
'AnimEaseIn',
'AnimEaseOut',
'AnimEaseInOut',
'AnimEaseInCubic',
'AnimEaseOutCubic',
'AnimEaseInOutCubic',
'AnimEaseInQuart',
'AnimEaseOutQuart',
'AnimEaseInOutQuart',
'AnimEaseInQuint',
'AnimEaseOutQuint',
'AnimEaseInOutQuint',
'AnimEaseInSine',
'AnimEaseOutSine',
'AnimEaseInOutSine',
'AnimEaseInExpo',
'AnimEaseOutExpo',
'AnimEaseInOutExpo',
'AnimEaseInCirc',
'AnimEaseOutCirc',
'AnimEaseInOutCirc',
'AnimEaseInBack',
'AnimEaseOutBack',
'AnimEaseInOutBack',
'AnimEaseInElastic',
'AnimEaseOutElastic',
'AnimEaseInOutElastic',
'AnimEaseInBounce',
'AnimEaseOutBounce',
'AnimEaseInOutBounce',
}
local cureffect=1
function preparebg(effname)
print(effname,120-8*#effname/2,120-60,white,0,8)
line(0,120-50,240,120-50,white)
line(0,120+50,240,120+50,white)
color(red)
line(40,120+50,40,120+50)
for i=0,160 do
line(40+i,anim_calc(_G[effname],120+50,120-50,160,i))
end
end
preparebg(animeffect[cureffect])
function _draw()
if btnp(4) then
cls(0)
preparebg(animeffect[cureffect])
cureffect=cureffect+1
if cureffect>#animeffect then
cureffect=1
end
end
end