package examples.etyllica.animation.tween; import java.awt.Color; import br.com.etyllica.core.animation.Animation; import br.com.etyllica.core.animation.LayerAnimation; import br.com.etyllica.core.context.Application; import br.com.etyllica.core.graphics.Graphics; import br.com.etyllica.core.interpolation.Interpolator; import br.com.etyllica.layer.Layer; public class TweenBallExample extends Application { public TweenBallExample(int w, int h) { super(w, h); } private Layer fadeBall; private Layer linearBall; private Layer quadraticBall; private Layer reverseQuadraticBall; @Override public void load() { loading = 10; linearBall = new Layer(40, 80, 30, 30); quadraticBall = new Layer(40, 120, 30, 30); reverseQuadraticBall = new Layer(40, 160, 30, 30); fadeBall = new Layer(40, 200, 30, 30); int duration = 2000; LayerAnimation linearAnimation = Animation.animate(linearBall).move(duration).from(40, 80).to(480, 80).interpolate(Interpolator.LINEAR); linearAnimation.move(duration).from(480,80).to(40, 80).interpolate(Interpolator.LINEAR).then(linearAnimation); linearAnimation.start(); LayerAnimation quadraticAnimation = Animation.animate(quadraticBall).move(duration).from(40, 120).to(480, 120).interpolate(Interpolator.QUADRATIC); quadraticAnimation.move(duration).from(480,120).to(40, 120).interpolate(Interpolator.QUADRATIC).then(quadraticAnimation); quadraticAnimation.start(); LayerAnimation reverseQuadraticAnimation = Animation.animate(reverseQuadraticBall).move(duration).from(40, 160).to(480, 160).interpolate(Interpolator.REVERSE_QUADRATIC); reverseQuadraticAnimation.move(duration).from(480,160).to(40, 160).interpolate(Interpolator.REVERSE_QUADRATIC).then(reverseQuadraticAnimation); reverseQuadraticAnimation.start(); Animation.animate(fadeBall).fadeIn().during(duration).start(); loading = 100; } @Override public void draw(Graphics g) { drawBall(g, linearBall); drawBall(g, quadraticBall); drawBall(g, reverseQuadraticBall); g.setOpacity(fadeBall.getOpacity()); drawBall(g, fadeBall); g.resetOpacity(); } protected void drawBall(Graphics g, Layer ball) { g.setColor(Color.BLUE); g.fillOval(ball.getX(), ball.getY(), ball.getW(), ball.getH()); g.setColor(Color.BLACK); g.drawOval(ball.getX(), ball.getY(), ball.getW(), ball.getH()); } @Override public void update(long now) { } }