diff options
| author | J08nY | 2017-11-07 18:11:44 +0100 |
|---|---|---|
| committer | J08nY | 2017-11-07 18:11:44 +0100 |
| commit | f07dcb0044e65ebff9143556adc3abe985394a14 (patch) | |
| tree | c7be0a3e202c880748ca72bb1a1e1d7dd4077912 /core/src/sk/neuromancer/sphaera/rewrite/Splash.java | |
| download | ld34-master.tar.gz ld34-master.tar.zst ld34-master.zip | |
Diffstat (limited to 'core/src/sk/neuromancer/sphaera/rewrite/Splash.java')
| -rwxr-xr-x | core/src/sk/neuromancer/sphaera/rewrite/Splash.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/core/src/sk/neuromancer/sphaera/rewrite/Splash.java b/core/src/sk/neuromancer/sphaera/rewrite/Splash.java new file mode 100755 index 0000000..d38fbc5 --- /dev/null +++ b/core/src/sk/neuromancer/sphaera/rewrite/Splash.java @@ -0,0 +1,93 @@ +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(); + } +} |
