package com.newrog.myGame; import java.util.ArrayList; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.Texture.TextureFilter; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.Vector2; import com.newrog.simplegdx.internal.Files; public class Logo { private ArrayList scripts = new ArrayList(); private Texture texture; private Sprite sprite; private Vector2 position; private float alpha; public Logo(float x, float y){ texture = new Texture(Files.get("data/libgdx.png")); texture.setFilter(TextureFilter.Linear, TextureFilter.Linear); TextureRegion region = new TextureRegion(texture, 0, 0, 512, 275); position = new Vector2(x,y); sprite = new Sprite(region); sprite.setSize( sprite.getWidth(), sprite.getHeight()); sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2); sprite.setPosition(position.x, position.y); alpha = 0; scripts.add(new FadeIn()); scripts.add(new SwirlIn()); } public void update(){ for(int i = 0; i < scripts.size(); i++){ scripts.get(i).run(); } sprite.setPosition(position.x, position.y); } public void render(SpriteBatch batch){ batch.setColor(1, 1, 1, alpha); batch.draw(sprite, sprite.getX(), sprite.getY(), sprite.getOriginX(), sprite.getOriginY(), sprite.getWidth(), sprite.getHeight(), sprite.getScaleX(), sprite.getScaleY(), sprite.getRotation()); batch.setColor(1, 1, 1, 1); } private class FadeIn implements Runnable{ @Override public void run() { alpha += .005f; if(alpha>=1f){ alpha = 1; scripts.remove(this); } } } private class SwirlIn implements Runnable{ float swirlAngle = 0; float distance = 50; Vector2 original; @Override public void run() { if(original == null){ original = position.cpy(); } position.x = (float) (original.x+distance*Math.cos(swirlAngle)); position.y = (float) (original.y+distance*Math.sin(swirlAngle)); swirlAngle+=.1; if(distance > 0){ distance-=.3f; } if(swirlAngle >= 20){ scripts.remove(this); scripts.add(new Bounce()); } } } private class Bounce implements Runnable{ int tick = 0; @Override public void run() { if(tick % 40 < 20){ position.y += .3f; }else { position.y -= .3f; } tick++; } } public void dispose() { texture.dispose(); } }