X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2FGameScreen.java;h=09604fd4b79bb6a4c1661649513cd72f045ab15b;hb=ef32f2e88b9c0daa411d0c304ce62b1235541fb1;hp=759cbc0db800c5e8467ad7b18f59578c34565ed0;hpb=50346da46f787f84aeeb891630eea1463eb4d8de;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/GameScreen.java b/core/src/ru/deadsoftware/cavedroid/GameScreen.java index 759cbc0..09604fd 100644 --- a/core/src/ru/deadsoftware/cavedroid/GameScreen.java +++ b/core/src/ru/deadsoftware/cavedroid/GameScreen.java @@ -6,37 +6,47 @@ import ru.deadsoftware.cavedroid.game.GameItems; import ru.deadsoftware.cavedroid.game.GameProc; import ru.deadsoftware.cavedroid.game.GameSaver; import ru.deadsoftware.cavedroid.menu.MenuRenderer; -import ru.deadsoftware.cavedroid.misc.*; +import ru.deadsoftware.cavedroid.misc.Assets; +import ru.deadsoftware.cavedroid.misc.InputHandlerGame; +import ru.deadsoftware.cavedroid.misc.InputHandlerMenu; +import ru.deadsoftware.cavedroid.misc.Renderer; +import ru.deadsoftware.cavedroid.misc.states.AppState; +import ru.deadsoftware.cavedroid.misc.states.GameState; +import ru.deadsoftware.cavedroid.misc.states.MenuState; public class GameScreen implements Screen { - public static int FPS; - public static boolean SHOW_DEBUG = true; - public static int NEW_GAME_MODE = 0; - public static GameProc GP; + public static int FPS; + public static boolean SHOW_DEBUG = false; + public static boolean SHOW_MAP = false; + private Renderer renderer; private MenuRenderer menuRenderer; + private InputHandlerGame inputHandlerGame; + private final InputHandlerMenu inputHandlerMenu; + public GameScreen() { Assets.load(); GameItems.load(); menuRenderer = new MenuRenderer(CaveGame.TOUCH ? 320 : 480); + inputHandlerMenu = new InputHandlerMenu(menuRenderer); renderer = menuRenderer; - Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer)); + Gdx.input.setInputProcessor(inputHandlerMenu); } - public static int getWidth() { + public static float getWidth() { return Gdx.graphics.getWidth(); } - public static int getHeight() { + public static float getHeight() { return Gdx.graphics.getHeight(); } - private void game(float delta) { - GP.update(delta); + private void game() { + GP.update(); } private void menu() { @@ -49,41 +59,33 @@ public class GameScreen implements Screen { @Override public void render(float delta) { FPS = (int) (1 / delta); - switch (CaveGame.STATE) { - case GAME_PLAY: - case GAME_CREATIVE_INV: - game(delta); + switch (CaveGame.APP_STATE) { + case GAME: + game(); break; - case MENU_MAIN: + case MENU: menu(); break; - case NEW_GAME: - GP = new GameProc(); - GP.initGame(NEW_GAME_MODE); - renderer = GP.renderer; - Gdx.input.setInputProcessor(new InputHandlerGame()); - CaveGame.STATE = AppState.GAME_PLAY; - break; - - case LOAD_GAME: - GP = GameSaver.load(); + case LOAD: + GP.resetRenderer(); renderer = GP.renderer; - Gdx.input.setInputProcessor(new InputHandlerGame()); - CaveGame.STATE = AppState.GAME_PLAY; + if (inputHandlerGame == null) { + inputHandlerGame = new InputHandlerGame(); + } + Gdx.input.setInputProcessor(inputHandlerGame); + CaveGame.APP_STATE = AppState.GAME; + CaveGame.GAME_STATE = GameState.PLAY; break; - case SAVE_GAME: + case SAVE: GameSaver.save(GP); - CaveGame.STATE = AppState.MENU_MAIN; - break; - - case GOTO_MENU: + CaveGame.APP_STATE = AppState.MENU; + CaveGame.MENU_STATE = MenuState.MAIN; GP.dispose(); - menuRenderer = new MenuRenderer(CaveGame.TOUCH ? 320 : 480); renderer = menuRenderer; - Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer)); + Gdx.input.setInputProcessor(inputHandlerMenu); break; } renderer.render(); @@ -91,14 +93,13 @@ public class GameScreen implements Screen { @Override public void resize(int width, int height) { - switch (CaveGame.STATE) { - case MENU_MAIN: + switch (CaveGame.APP_STATE) { + case MENU: menuRenderer = new MenuRenderer(CaveGame.TOUCH ? 320 : 480); - Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer)); + Gdx.input.setInputProcessor(inputHandlerMenu); renderer = menuRenderer; break; - case GAME_PLAY: - case GAME_CREATIVE_INV: + case GAME: GP.resetRenderer(); renderer = GP.renderer; break;