package sk.neuromancer.sphaera.rewrite; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.utils.viewport.FillViewport; import com.badlogic.gdx.utils.viewport.Viewport; public class Splash extends GameState{ private Sprite splash; private OrthographicCamera camera; private Viewport viewport; private SpriteBatch renderer; public static final String FILE = "splash.png"; public static final Color SPLASH_COLOR = Color.valueOf("FF1E29"); public static final int DURATION = 2; public Splash(Object... remains){ super(remains); this.splash = new Sprite(new Texture(Gdx.files.internal(FILE))); this.camera = new OrthographicCamera(); this.renderer = new SpriteBatch(); this.viewport = new FillViewport(SphaeraGame.DEFAULT_WIDTH, SphaeraGame.DEFAULT_HEIGHT, camera); this.viewport.apply(); this.camera.position.set(camera.viewportWidth/2, camera.viewportHeight/2,0); } @Override public void show() { resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); } @Override public void render(float delta) { camera.update(); Gdx.gl.glClearColor(SPLASH_COLOR.r, SPLASH_COLOR.g, SPLASH_COLOR.b, SPLASH_COLOR.a); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); renderer.setProjectionMatrix(camera.combined); renderer.begin(); splash.draw(renderer); renderer.end(); } @Override public void tick(long tickCount) { if(tickCount > DURATION * SphaeraGame.TPS){ if(!isFinished()){ this.finish(); this.setNext(new Menu()); } } } @Override public void resize(int width, int height) { viewport.update(width, height, true); int minSize = width > height ? width : height; splash.setSize(minSize, minSize); splash.setCenter(width/2, height/2); } @Override public void pause() { } @Override public void resume() { } @Override public void hide() { Gdx.gl.glClearColor(1,1,1,1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); } @Override public void dispose() { splash.getTexture().dispose(); } }