X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2FGameScreen.java;h=0bbd9966f6a95af78c0f23313ede6657b053b102;hb=22eccb137bf9642700f762dd39cf02ea144bdca3;hp=30382a83cf63183f947658bd251f5fce656fc9a0;hpb=226f349b0fcb10ca5b7d540ae632c8b7a6600439;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/GameScreen.java b/core/src/ru/deadsoftware/cavecraft/GameScreen.java index 30382a8..0bbd996 100644 --- a/core/src/ru/deadsoftware/cavecraft/GameScreen.java +++ b/core/src/ru/deadsoftware/cavecraft/GameScreen.java @@ -1,22 +1,30 @@ package ru.deadsoftware.cavecraft; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.Screen; -import ru.deadsoftware.cavecraft.game.GameInputHandler; +import ru.deadsoftware.cavecraft.game.GameItems; import ru.deadsoftware.cavecraft.game.GameProc; +import ru.deadsoftware.cavecraft.game.GameSaver; +import ru.deadsoftware.cavecraft.menu.MenuRenderer; +import ru.deadsoftware.cavecraft.misc.*; public class GameScreen implements Screen { - private GameProc gameProc; - private GameInputHandler gameInput; + public static int FPS; + public static boolean SHOW_DEBUG = false; + public static int NEW_GAME_MODE = 0; + + public static GameProc GP; + + private Renderer renderer; + private MenuRenderer menuRenderer; public GameScreen() { Assets.load(); - Items.load(); - gameProc = new GameProc(); - gameInput = new GameInputHandler(gameProc); - Gdx.input.setInputProcessor(new InputHandler()); + GameItems.load(); + menuRenderer = new MenuRenderer(CaveGame.TOUCH ? 320 : 480); + renderer = menuRenderer; + Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer)); } public static int getWidth() { @@ -27,20 +35,73 @@ public class GameScreen implements Screen { return Gdx.graphics.getHeight(); } + private void game(float delta) { + GP.update(delta); + } + + private void menu() { + } + @Override public void show() { - } @Override public void render(float delta) { - gameProc.update(delta); - gameProc.renderer.render(); + FPS = (int) (1 / delta); + switch (CaveGame.STATE) { + case GAME_PLAY: + case GAME_CREATIVE_INV: + game(delta); + break; + + case MENU_MAIN: + 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(); + renderer = GP.renderer; + Gdx.input.setInputProcessor(new InputHandlerGame()); + CaveGame.STATE = AppState.GAME_PLAY; + break; + + case SAVE_GAME: + GameSaver.save(GP); + 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: + GP.resetRenderer(); + renderer = GP.renderer; + break; + } } @Override @@ -63,61 +124,4 @@ public class GameScreen implements Screen { } - private class InputHandler implements InputProcessor { - - @Override - public boolean keyDown(int keycode) { - gameInput.keyDown(keycode); - return false; - } - - @Override - public boolean keyUp(int keycode) { - gameInput.keyUp(keycode); - return false; - } - - @Override - public boolean keyTyped(char character) { - return false; - } - - @Override - public boolean touchDown(int screenX, int screenY, int pointer, int button) { - screenX *= gameProc.renderer.camera.viewportWidth/getWidth(); - screenY *= gameProc.renderer.camera.viewportHeight/getHeight(); - gameInput.touchDown(screenX, screenY, button); - return false; - } - - @Override - public boolean touchUp(int screenX, int screenY, int pointer, int button) { - screenX *= gameProc.renderer.camera.viewportWidth/getWidth(); - screenY *= gameProc.renderer.camera.viewportHeight/getHeight(); - gameInput.touchUp(screenX, screenY, button); - return false; - } - - @Override - public boolean touchDragged(int screenX, int screenY, int pointer) { - screenX *= gameProc.renderer.camera.viewportWidth/getWidth(); - screenY *= gameProc.renderer.camera.viewportHeight/getHeight(); - gameInput.touchDragged(screenX, screenY); - return false; - } - - @Override - public boolean mouseMoved(int screenX, int screenY) { - screenX *= gameProc.renderer.camera.viewportWidth/getWidth(); - screenY *= gameProc.renderer.camera.viewportHeight/getHeight(); - gameInput.mouseMoved(screenX,screenY); - return false; - } - - @Override - public boolean scrolled(int amount) { - gameInput.scrolled(amount); - return false; - } - } }