73 lines
1.1 KiB
Lua
73 lines
1.1 KiB
Lua
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
|
|
|
|
local SmoothBezier =
|
|
{
|
|
0, 0, 1, 1
|
|
}
|
|
function Actor:smooth(t)
|
|
self:tween( t, TweenBezier, SmoothBezier );
|
|
end
|
|
|
|
-- Hide if b is true, but don't unhide if b is false.
|
|
function Actor:hide_if(b)
|
|
if b then
|
|
self:hidden(1)
|
|
end
|
|
end
|
|
|
|
function ActorFrame:propagatecommand( cmd )
|
|
self:propagate(1);
|
|
self:playcommand(cmd);
|
|
self:propagate(0);
|
|
end
|