Tweening
Use tweening/interpolation for smooth animation.
Contributors: LuYifei2011
Scripts
Linear
define linear from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg) set [Tween v] to ((progress% :: custom-arg) / (100)) set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
Sine
define sine ease in from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg) set [Tween v] to ((progress% :: custom-arg) / (100)) set [Tween v] to ((1) - ([cos v] of ((Tween) * (90)))) set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg)) define sine ease out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg) set [Tween v] to ((progress% :: custom-arg) / (100)) set [Tween v] to ([sin v] of ((Tween) * (90))) set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg)) define sine ease in-out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg) set [Tween v] to ((progress% :: custom-arg) / (100)) set [Tween v] to (() - ((([cos v] of ((Tween) * (180))) - (1)) / (2))) set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
Power
// You can change exponent: square / cubic / quartic / quintic define power-in from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg) set [Tween v] to ((progress% :: custom-arg) / (100)) set [Tween v] to ((Tween) * (Tween)) // cubic: multiply again; quartic/quintic: and so on set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg)) define power-out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg) set [Tween v] to ((progress% :: custom-arg) / (100)) set [Tween v] to ((1) - (Tween)) set [Tween v] to ((Tween) * (Tween)) // cubic: multiply again set [Tween v] to ((1) - (Tween)) set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg)) define power-in-out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg) set [Tween v] to ((progress% :: custom-arg) / (100)) if <(Tween) < (0.5)> then set [Tween v] to ((2) * (Tween)) set [Tween v] to ((Tween) * (Tween)) // cubic: multiply again set [Tween v] to ((Tween) / (2)) else set [Tween v] to (((-2) * (Tween)) + (2)) set [Tween v] to ((Tween) * (Tween)) // cubic: multiply again set [Tween v] to ((1) - ((Tween) / (2))) end set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
Exponential
Imported Module 幂 (乘方) · 主脚本 (#1)
define (a :: custom-arg) ^ (b :: custom-arg) set [a^b v] to (1) repeat (b :: custom-arg) set [a^b v] to ((a^b) * (a :: custom-arg)) end
define expo ease in from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((progress% :: custom-arg) / (100))
if <(Tween) = (0)> then
set [Tween v] to (0)
else
(2) ^ (((10) * (Tween)) - (10)) :: custom
set [Tween v] to (a^b)
end
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
define expo ease out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((progress% :: custom-arg) / (100))
if <(Tween) = (1)> then
set [Tween v] to (1)
else
(2) ^ ((-10) * (Tween)) :: custom
set [Tween v] to ((1) - (a^b))
end
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
define expo ease in-out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((progress% :: custom-arg) / (100))
if <(Tween) = (0)> then
set [Tween v] to (0)
else
if <(Tween) = (1)> then
set [Tween v] to (1)
else
if <(Tween) < (0.5)> then
(2) ^ (((20) * (Tween)) - (10)) :: custom
set [Tween v] to ((a^b) / (2))
else
(2) ^ (((-20) * (Tween)) + (10)) :: custom
set [Tween v] to (((2) - (a^b)) / (2))
end
end
end
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))Circular
define circular ease in from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg) set [Tween v] to ((progress% :: custom-arg) / (100)) set [Tween v] to ((1) - ([sqrt v] of ((1) - ((Tween) * (Tween))))) set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg)) define circular ease out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg) set [Tween v] to ((progress% :: custom-arg) / (100)) set [Tween v] to ([sqrt v] of ((1) - (((Tween) - (1)) * ((Tween) - (1))))) set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg)) define circular ease in-out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg) set [Tween v] to ((progress% :: custom-arg) / (100)) if <(Tween) < (0.5)> then set [Tween v] to ((2) * (Tween)) set [Tween v] to ((1) - ([sqrt v] of ((1) - ((Tween) * (Tween))))) set [Tween v] to ((Tween) / (2)) else set [Tween v] to (((-2) * (Tween)) + (2)) set [Tween v] to ([sqrt v] of ((1) - ((Tween) * (Tween)))) set [Tween v] to (((Tween) + (1)) / (2)) end set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
Back
define back ease in from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((进度 :: custom-arg) / (100))
set [Tween v] to ((1) - (Tween))
if <(Tween) < (0.363636)> then
set [Tween v] to ((7.5625) * ((Tween) * (Tween)))
else
if <(Tween) < (0.727272)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.545454)) * ((Tween) - (0.545454)))) + (0.75))
else
if <(Tween) < (0.90909)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.818181)) * ((Tween) - (0.818181)))) + (0.9375))
else
set [Tween v] to (((7.5625) * (((Tween) - (0.954545)) * ((Tween) - (0.954545)))) + (0.984375))
end
end
end
set [Tween v] to ((1) - (Tween))
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
define back ease out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((进度 :: custom-arg) / (100))
if <(Tween) < (0.363636)> then
set [Tween v] to ((7.5625) * ((Tween) * (Tween)))
else
if <(Tween) < (0.727272)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.545454)) * ((Tween) - (0.545454)))) + (0.75))
else
if <(Tween) < (0.90909)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.818181)) * ((Tween) - (0.818181)))) + (0.9375))
else
set [Tween v] to (((7.5625) * (((Tween) - (0.954545)) * ((Tween) - (0.954545)))) + (0.984375))
end
end
end
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
define back ease in-out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((进度 :: custom-arg) / (100))
if <(Tween) < (0.5)> then
set [Tween v] to ((Tween) * (2))
set [Tween v] to ((Tween) / (100))
set [Tween v] to ((Tween) * (100))
set [Tween v] to ((Tween) / (2))
else
set [Tween v] to (((Tween) * (2)) - (1))
if <(Tween) < (0.363636)> then
set [Tween v] to ((7.5625) * ((Tween) * (Tween)))
else
if <(Tween) < (0.727272)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.545454)) * ((Tween) - (0.545454)))) + (0.75))
else
if <(Tween) < (0.90909)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.818181)) * ((Tween) - (0.818181)))) + (0.9375))
else
set [Tween v] to (((7.5625) * (((Tween) - (0.954545)) * ((Tween) - (0.954545)))) + (0.984375))
end
end
end
set [Tween v] to ((Tween) / (2))
set [Tween v] to ((Tween) + (0.5))
end
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))Elastic
Imported Module 幂 (乘方) · 主脚本 (#1)
define (a :: custom-arg) ^ (b :: custom-arg) set [a^b v] to (1) repeat (b :: custom-arg) set [a^b v] to ((a^b) * (a :: custom-arg)) end
define elastic ease in from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((progress% :: custom-arg) / (100))
if <(Tween) = (0)> then
set [Tween v] to (0)
else
if <(Tween) = (1)> then
set [Tween v] to (1)
else
(2) ^ (((10) * (Tween)) - (10)) :: custom
set [Tween v] to (() - ((a^b) * ([sin v] of ((((Tween) * (10)) - (10.75)) * (120)))))
end
end
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
define elastic ease out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((progress% :: custom-arg) / (100))
if <(Tween) = (0)> then
set [Tween v] to (0)
else
if <(Tween) = (1)> then
set [Tween v] to (1)
else
(2) ^ ((-10) * (Tween)) :: custom
set [Tween v] to (((a^b) * ([sin v] of ((((Tween) * (10)) - (0.75)) * (120)))) + (1))
end
end
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
define elastic ease in-out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((progress% :: custom-arg) / (100))
if <(Tween) = (0)> then
set [Tween v] to (0)
else
if <(Tween) = (1)> then
set [Tween v] to (1)
else
if <(Tween) < (0.5)> then
(2) ^ (((20) * (Tween)) - (10)) :: custom
set [Tween v] to ((() - ((a^b) * ([sin v] of ((((Tween) * (20)) - (11.125)) * (80))))) / (2))
else
(2) ^ (((-20) * (Tween)) + (10)) :: custom
set [Tween v] to ((((a^b) * ([sin v] of ((((Tween) * (20)) - (11.125)) * (80)))) / (2)) + (1))
end
end
end
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))Bounce
define bounce ease out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((progress% :: custom-arg) / (100))
if <(Tween) < (0.363636)> then
set [Tween v] to ((7.5625) * ((Tween) * (Tween)))
else
if <(Tween) < (0.727272)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.545454)) * ((Tween) - (0.545454)))) + (0.75))
else
if <(Tween) < (0.90909)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.818181)) * ((Tween) - (0.818181)))) + (0.9375))
else
set [Tween v] to (((7.5625) * (((Tween) - (0.954545)) * ((Tween) - (0.954545)))) + (0.984375))
end
end
end
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
define bounce ease in from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((progress% :: custom-arg) / (100))
set [Tween v] to ((1) - (Tween))
if <(Tween) < (0.363636)> then
set [Tween v] to ((7.5625) * ((Tween) * (Tween)))
else
if <(Tween) < (0.727272)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.545454)) * ((Tween) - (0.545454)))) + (0.75))
else
if <(Tween) < (0.90909)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.818181)) * ((Tween) - (0.818181)))) + (0.9375))
else
set [Tween v] to (((7.5625) * (((Tween) - (0.954545)) * ((Tween) - (0.954545)))) + (0.984375))
end
end
end
set [Tween v] to ((1) - (Tween))
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))
define bounce ease in-out from (start :: custom-arg) to (end :: custom-arg) progress (progress% :: custom-arg)
set [Tween v] to ((progress% :: custom-arg) / (100))
if <(Tween) < (0.5)> then
set [Tween v] to ((Tween) * (2))
set [Tween v] to ((1) - (Tween))
if <(Tween) < (0.363636)> then
set [Tween v] to ((7.5625) * ((Tween) * (Tween)))
else
if <(Tween) < (0.727272)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.545454)) * ((Tween) - (0.545454)))) + (0.75))
else
if <(Tween) < (0.90909)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.818181)) * ((Tween) - (0.818181)))) + (0.9375))
else
set [Tween v] to (((7.5625) * (((Tween) - (0.954545)) * ((Tween) - (0.954545)))) + (0.984375))
end
end
end
set [Tween v] to ((1) - (Tween))
set [Tween v] to ((Tween) / (2))
else
set [Tween v] to (((Tween) * (2)) - (1))
if <(Tween) < (0.363636)> then
set [Tween v] to ((7.5625) * ((Tween) * (Tween)))
else
if <(Tween) < (0.727272)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.545454)) * ((Tween) - (0.545454)))) + (0.75))
else
if <(Tween) < (0.90909)> then
set [Tween v] to (((7.5625) * (((Tween) - (0.818181)) * ((Tween) - (0.818181)))) + (0.9375))
else
set [Tween v] to (((7.5625) * (((Tween) - (0.954545)) * ((Tween) - (0.954545)))) + (0.984375))
end
end
end
set [Tween v] to (((Tween) + (1)) / (2))
end
set [Tween v] to (((Tween) * ((end :: custom-arg) - (start :: custom-arg))) + (start :: custom-arg))Variables / Lists
| Name | Type | Scope |
|---|---|---|
| 补间 | Variable | Sprite |
References
- Tween | TurboWarp Extensions (extension)