summaryrefslogtreecommitdiff
path: root/core/src/sk/neuromancer/sphaera/rewrite/Splash.java
blob: d38fbc53b8411c969f2d76946867ba2db6f4f21a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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();
    }
}