package examples.etyllica.tutorial07.application; import java.awt.Color; import br.com.etyllica.core.animation.script.AnimationScript; import br.com.etyllica.core.animation.script.HorizontalMovementScript; import br.com.etyllica.core.animation.script.OpacityAnimation; import br.com.etyllica.core.animation.script.OrbitAnimation; import br.com.etyllica.core.animation.script.RotateAnimation; import br.com.etyllica.core.animation.script.ScaleUniformAnimation; import br.com.etyllica.core.animation.script.VerticalMovementScript; import br.com.etyllica.core.context.Application; import br.com.etyllica.core.graphics.Graphics; import br.com.etyllica.layer.ImageLayer; import br.com.etyllica.layer.Layer; import br.com.etyllica.layer.TextLayer; /** * * @author yuripourre * @license LGPLv3 * */ public class AnimationExample extends Application { public AnimationExample(int w, int h) { super(w, h); } private TextLayer text = new TextLayer("Text!"); private TextLayer bouncingText = new TextLayer(0,400,"Text2!"); private TextLayer text3 = new TextLayer(300,400,"Text3!"); private ImageLayer hello; private ImageLayer helloFix; private Layer layer = new Layer(200,440,40,40); int cx = 220, cy = 340; @Override public void load() { text.setBorder(true); text.setBorderColor(Color.BLACK); text.setBorderWidth(3f); bouncingText.setSize(26); bouncingText.setBorder(true); bouncingText.setBorderColor(Color.BLACK); bouncingText.setBorderWidth(3f); HorizontalMovementScript hscript = new HorizontalMovementScript(bouncingText, 10000); hscript.setInterval(400, 10); HorizontalMovementScript invscript = new HorizontalMovementScript(bouncingText, 10000); invscript.setInterval(10, 400); //After the hscript, execute invscript invscript.addNext(hscript); hscript.addNext(invscript); VerticalMovementScript vscript = new VerticalMovementScript(bouncingText, 600); vscript.setInterval(100, 200); VerticalMovementScript invVscript = new VerticalMovementScript(600); invVscript.setTarget(bouncingText); invVscript.setInterval(200, 100); invscript.addNext(vscript); vscript.addNext(invVscript); this.scene.addAnimation(hscript); this.scene.addAnimation(vscript); RotateAnimation rotate = new RotateAnimation(1000,6000); rotate.setTarget(bouncingText); rotate.setInterval(0, 360); this.scene.addAnimation(rotate); OpacityAnimation opacityAnimation = new OpacityAnimation(0,10000); opacityAnimation.setTarget(text3); opacityAnimation.setInterval(0, 255); this.scene.addAnimation(opacityAnimation); ScaleUniformAnimation scaleAnimation = new ScaleUniformAnimation(0,10000); scaleAnimation.setTarget(text3); scaleAnimation.setInterval(1, 5); this.scene.addAnimation(scaleAnimation); OrbitAnimation orbit = new OrbitAnimation(0,60000); orbit.setTarget(layer); orbit.setInterval(0, 1080); orbit.around(cx, cy); orbit.setRepeat(AnimationScript.REPEAT_FOREVER); this.scene.addAnimation(orbit); hello = new ImageLayer(200,100,"hello.png"); helloFix = new ImageLayer(200,100,"hello.png"); ScaleUniformAnimation scaleHello = new ScaleUniformAnimation(0,10000); scaleHello.setTarget(hello); scaleHello.setInterval(1, 2); this.scene.addAnimation(scaleHello); RotateAnimation rotateHello = new RotateAnimation(0,10000); rotateHello.setTarget(hello); rotateHello.setInterval(0, 360); this.scene.addAnimation(rotateHello); loading = 100; } @Override public void draw(Graphics g) { //Drawing background g.setColor(Color.LIGHT_GRAY); g.fillRect(x,y,w,h); text.draw(g); bouncingText.draw(g); text3.draw(g); helloFix.draw(g); hello.draw(g); g.setColor(Color.BLACK); g.fillCircle(cx, cy, 10); g.drawCircle(cx, cy, 120); g.drawLine(cx, cy, layer.getX()+layer.getW()/2, layer.getY()+layer.getH()/2); g.setColor(Color.BLUE); g.drawRect(layer); } }