From 27327ff6c3ad482823432b55084026c84cf79175 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Mon, 23 Jan 2006 05:49:22 +0000 Subject: [PATCH] ease, bouncebegin, bounceend --- stepmania/Themes/default/Scripts/Actor.lua | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/stepmania/Themes/default/Scripts/Actor.lua b/stepmania/Themes/default/Scripts/Actor.lua index c638f2945d..89b676cc74 100644 --- a/stepmania/Themes/default/Scripts/Actor.lua +++ b/stepmania/Themes/default/Scripts/Actor.lua @@ -1,3 +1,55 @@ +function Actor:ease(t, fEase) + -- Optimizations: + -- fEase = -100 is equivalent to TweenAccelerate. + if fEase == -100 then + self:accelerate(t); + return; + end + + -- fEase = 0 is equivalent to TweenLinear. + if fEase == 0 then + self:linear(t); + return; + end + + -- fEase = +100 is equivalent to TweenDecelerate. + if fEase == 100 then + self:decelerate(t); + return; + end + + self:tween( t, TweenBezier, + { + 0, + scale(fEase, -100, 100, 0/3, 2/3), + scale(fEase, -100, 100, 1/3, 3/3), + 1 + } + ); +end + +local BounceBeginBezier = +{ + 0, 0, + 0.42, -0.42, + 2/3, 0.3, + 1, 1 +} +function Actor:bouncebegin(t) + self:tween( t, TweenBezier, BounceBeginBezier ); +end + +local BounceEndBezier = +{ + 0,0, + 1/3, 0.7, + 0.58, 1.42, + 1, 1 +} +function Actor:bounceend(t) + self:tween( t, TweenBezier, BounceEndBezier ); +end + -- Hide if b is true, but don't unhide if b is false. function Actor:hide_if(b) if b then