X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2FGameScreen.java;h=d359fe92030420e7baa1abf591848bf946143b4e;hb=e7be8067d83f2a39c237ec7afbe115a846a74f3d;hp=2a2c262a6f4fe3cb0a36feb45f33f996080cc091;hpb=fe86b2fc3788c58fb134415780b312b4c7ef5c97;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/GameScreen.java b/core/src/ru/deadsoftware/cavecraft/GameScreen.java index 2a2c262..d359fe9 100644 --- a/core/src/ru/deadsoftware/cavecraft/GameScreen.java +++ b/core/src/ru/deadsoftware/cavecraft/GameScreen.java @@ -1,23 +1,27 @@ package ru.deadsoftware.cavecraft; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.Input; -import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.Screen; -import ru.deadsoftware.cavecraft.game.GameInputHandler; import ru.deadsoftware.cavecraft.game.GameProc; +import ru.deadsoftware.cavecraft.game.GameSaver; +import ru.deadsoftware.cavecraft.game.Items; +import ru.deadsoftware.cavecraft.menu.MenuRenderer; +import ru.deadsoftware.cavecraft.misc.*; public class GameScreen implements Screen { public static int FPS; private GameProc gameProc; + private Renderer renderer; + private MenuRenderer menuRenderer; public GameScreen() { Assets.load(); Items.load(); - gameProc = new GameProc(); - Gdx.input.setInputProcessor(new InputHandler(gameProc)); + menuRenderer = new MenuRenderer(CaveGame.TOUCH?320:480); + renderer = menuRenderer; + Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer)); } public static int getWidth() { @@ -28,26 +32,69 @@ public class GameScreen implements Screen { return Gdx.graphics.getHeight(); } + private void game(float delta) { + gameProc.update(delta); + } + + private void menu() { + } + @Override public void show() { - } @Override public void render(float delta) { - if (CaveGame.STATE == GameState.RESTART) { - gameProc = new GameProc(); - Gdx.input.setInputProcessor(new InputHandler(gameProc)); - CaveGame.STATE = GameState.GAME_PLAY; - } FPS = (int)(1/delta); - gameProc.update(delta); - gameProc.renderer.render(); + switch (CaveGame.STATE) { + case GAME_PLAY: case GAME_CREATIVE_INV: + game(delta); + break; + + case MENU_MAIN: + menu(); + break; + + case NEW_GAME: + gameProc = new GameProc(); + renderer = gameProc.renderer; + Gdx.input.setInputProcessor(new InputHandlerGame(gameProc)); + CaveGame.STATE = AppState.GAME_PLAY; + break; + + case LOAD_GAME: + gameProc = GameSaver.load(); + renderer = gameProc.renderer; + Gdx.input.setInputProcessor(new InputHandlerGame(gameProc)); + CaveGame.STATE = AppState.GAME_PLAY; + break; + + case SAVE_GAME: + GameSaver.save(gameProc); + CaveGame.STATE = AppState.MENU_MAIN; + break; + + case GOTO_MENU: + menuRenderer = new MenuRenderer(CaveGame.TOUCH?320:480); + renderer = menuRenderer; + Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer)); + break; + } + renderer.render(); } @Override public void resize(int width, int height) { - gameProc.resetRenderer(); + switch (CaveGame.STATE) { + case MENU_MAIN: + menuRenderer = new MenuRenderer(CaveGame.TOUCH?320:480); + renderer = menuRenderer; + break; + case GAME_PLAY: case GAME_CREATIVE_INV: + gameProc.resetRenderer(); + renderer = gameProc.renderer; + break; + } } @Override