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();
}
}
|