diff options
Diffstat (limited to 'core')
| -rw-r--r-- | core/src/ch/asynk/gdx/boardgame/animations/FadeAnimation.java | 56 | 
1 files changed, 56 insertions, 0 deletions
| diff --git a/core/src/ch/asynk/gdx/boardgame/animations/FadeAnimation.java b/core/src/ch/asynk/gdx/boardgame/animations/FadeAnimation.java new file mode 100644 index 0000000..90b5299 --- /dev/null +++ b/core/src/ch/asynk/gdx/boardgame/animations/FadeAnimation.java @@ -0,0 +1,56 @@ +package ch.asynk.gdx.boardgame.animations; + +import com.badlogic.gdx.utils.Pool; + +import ch.asynk.gdx.boardgame.Drawable; + +public class FadeAnimation extends TimedAnimation implements Pool.Poolable +{ +    private static final Pool<FadeAnimation> fadeAnimationPool = new Pool<FadeAnimation>() +    { +        @Override protected FadeAnimation newObject() +        { +            return new FadeAnimation(); +        } +    }; + +    public static FadeAnimation obtain(Drawable drawable, float from, float to, float duration) +    { +        FadeAnimation a = fadeAnimationPool.obtain(); + +        a.from = from; +        a.to = to; +        a.drawable = drawable; +        a.setDuration(duration); + +        return a; +    } + +    private float from; +    private float to; +    private Drawable drawable; + +    private FadeAnimation() +    { +    } + +    @Override public void dispose() +    { +        fadeAnimationPool.free(this); +    } + +    @Override public void begin() +    { +        drawable.setAlpha(from); +    } + +    @Override public void end() +    { +        drawable.setAlpha(to); +    } + +    @Override public void update(float delta) +    { +        drawable.setAlpha(from + ((to - from) * percent)); +    } +} | 
