summaryrefslogtreecommitdiff
path: root/core/src/sk/neuromancer/sphaera/rewrite/Splash.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/sk/neuromancer/sphaera/rewrite/Splash.java')
-rwxr-xr-xcore/src/sk/neuromancer/sphaera/rewrite/Splash.java93
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();
+ }
+}