summaryrefslogtreecommitdiff
path: root/core/src/sk/neuromancer/sphaera/rewrite/SphaeraGame.java
diff options
context:
space:
mode:
authorJ08nY2017-11-07 18:11:44 +0100
committerJ08nY2017-11-07 18:11:44 +0100
commitf07dcb0044e65ebff9143556adc3abe985394a14 (patch)
treec7be0a3e202c880748ca72bb1a1e1d7dd4077912 /core/src/sk/neuromancer/sphaera/rewrite/SphaeraGame.java
downloadld34-f07dcb0044e65ebff9143556adc3abe985394a14.tar.gz
ld34-f07dcb0044e65ebff9143556adc3abe985394a14.tar.zst
ld34-f07dcb0044e65ebff9143556adc3abe985394a14.zip
Diffstat (limited to 'core/src/sk/neuromancer/sphaera/rewrite/SphaeraGame.java')
-rwxr-xr-xcore/src/sk/neuromancer/sphaera/rewrite/SphaeraGame.java119
1 files changed, 119 insertions, 0 deletions
diff --git a/core/src/sk/neuromancer/sphaera/rewrite/SphaeraGame.java b/core/src/sk/neuromancer/sphaera/rewrite/SphaeraGame.java
new file mode 100755
index 0000000..beb5a5a
--- /dev/null
+++ b/core/src/sk/neuromancer/sphaera/rewrite/SphaeraGame.java
@@ -0,0 +1,119 @@
+package sk.neuromancer.sphaera.rewrite;
+
+import sk.neuromancer.sphaera.interf.Tickable;
+
+import com.badlogic.gdx.Game;
+import com.badlogic.gdx.Gdx;
+
+public class SphaeraGame extends Game implements Tickable{
+
+ private Splash splash = null;
+ private Menu menu = null;
+ private World world = null;
+ private SoundPlayer soundPlayer;
+
+ public static final int DEFAULT_WIDTH = 900;
+ public static final int DEFAULT_HEIGHT = 650;
+
+ public static final int TPS = 30;
+ public static final int FOV = 75;
+
+ private long lastTickTime;
+ private long ticks, frames;
+
+ @Override
+ public void create(){
+ Gdx.graphics.setTitle("Sphaera");
+
+ splash = new Splash();
+ setScreen(splash);
+
+ Gdx.input.setInputProcessor(splash);
+
+ soundPlayer = new SoundPlayer();
+ soundPlayer.load();
+ //soundPlayer.play();
+
+ ticks = frames = 0;
+ lastTickTime = System.currentTimeMillis();
+ }
+
+ @Override
+ public void resize(int width, int height) {
+ super.resize(width, height);
+ }
+
+ @Override
+ public void render() {
+ long now = System.currentTimeMillis();
+ if(now - lastTickTime > (1/TPS) * 1000){
+ tick(ticks);
+ lastTickTime = now;
+ }
+ draw();
+ }
+
+ @Override
+ public void tick(long tickCount) {
+ ticks++;
+ GameState state = getScreen();
+ state.tick(tickCount);
+ soundPlayer.tick(tickCount);
+
+ if(ticks % 30 == 0){
+ System.out.println(Gdx.graphics.getFramesPerSecond());
+ }
+
+ if(state.isFinished()){
+ if(state instanceof World){
+ soundPlayer.playExplosion();
+ }
+
+ state = state.next();
+ Gdx.input.setInputProcessor(state);
+ setScreen(state);
+
+ if(state instanceof Menu){
+ menu = (Menu) state;
+ }else if(state instanceof World){
+ world = (World) state;
+ }else if(state instanceof Exit){
+ this.dispose();
+ state.dispose();
+ Gdx.app.exit();
+ }
+ }
+ }
+
+ public void draw(){
+ frames++;
+ super.render();
+ }
+
+ @Override
+ public void pause() {
+ super.pause();
+ }
+
+ @Override
+ public void resume() {
+ super.resume();
+ }
+
+ @Override
+ public void dispose() {
+ if(splash != null)
+ splash.dispose();
+ if(menu != null)
+ menu.dispose();
+ if(world != null)
+ world.dispose();
+ if(soundPlayer != null)
+ soundPlayer.dispose();
+ }
+
+ @Override
+ public GameState getScreen() {
+ return (GameState) super.getScreen();
+ }
+}