X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2FGameScreen.java;h=1c6ad795349289701f3a2bfaeb29503a799f0fba;hb=d1510d8504e14edc4b21ded60c8b5f0b910806c2;hp=209d32bb058b39ea8d62d5087e667ee6142e7fc6;hpb=40312aaac2ec8bd1247ad5979f7bd1d8e47ecae3;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/GameScreen.java b/core/src/ru/deadsoftware/cavecraft/GameScreen.java index 209d32b..1c6ad79 100644 --- a/core/src/ru/deadsoftware/cavecraft/GameScreen.java +++ b/core/src/ru/deadsoftware/cavecraft/GameScreen.java @@ -1,25 +1,24 @@ 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.menu.MenuRenderer; public class GameScreen implements Screen { public static int FPS; private GameProc gameProc; - private GameInputHandler gameInput; + private Renderer renderer; + private MenuRenderer menuRenderer; public GameScreen() { Assets.load(); Items.load(); - gameProc = new GameProc(); - gameInput = new GameInputHandler(gameProc); - Gdx.input.setInputProcessor(new InputHandler()); + menuRenderer = new MenuRenderer(CaveGame.TOUCH?320:480); + renderer = menuRenderer; + Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer)); } public static int getWidth() { @@ -30,6 +29,13 @@ public class GameScreen implements Screen { return Gdx.graphics.getHeight(); } + private void game(float delta) { + gameProc.update(delta); + } + + private void menu() { + } + @Override public void show() { @@ -38,13 +44,43 @@ public class GameScreen implements Screen { @Override public void render(float delta) { 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 GOTO_GAME: + gameProc = new GameProc(); + renderer = gameProc.renderer; + Gdx.input.setInputProcessor(new InputHandlerGame(gameProc)); + CaveGame.STATE = AppState.GAME_PLAY; + break; + + case GOTO_MENU: + renderer = menuRenderer; + Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer)); + CaveGame.STATE = AppState.MENU_MAIN; + 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 @@ -67,128 +103,4 @@ public class GameScreen implements Screen { } - private class InputHandler implements InputProcessor { - - @Override - public boolean keyDown(int keycode) { - if (keycode == Input.Keys.N) { - gameProc = new GameProc(); - gameInput = new GameInputHandler(gameProc); - } else { - 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(); - if (CaveGame.TOUCH) { - if (screenX > 26 && screenX < 52 && - screenY > gameProc.renderer.camera.viewportHeight - 52 && - screenY < gameProc.renderer.camera.viewportHeight - 26) { - gameInput.keyDown(Input.Keys.W); - } else if (screenX > 0 && screenX < 26 && - screenY > gameProc.renderer.camera.viewportHeight - 26) { - gameInput.keyDown(Input.Keys.A); - } else if (screenX > 26 && screenX < 52 && - screenY > gameProc.renderer.camera.viewportHeight - 26) { - gameInput.keyDown(Input.Keys.S); - } else if (screenX > 52 && screenX < 78 && - screenY > gameProc.renderer.camera.viewportHeight - 26) { - gameInput.keyDown(Input.Keys.D); - } else if (screenX > 78 && screenX < 104 && - screenY > gameProc.renderer.camera.viewportHeight - 26) { - gameInput.keyDown(Input.Keys.ALT_LEFT); - } else if (screenX > gameProc.renderer.camera.viewportWidth - 52 && - screenX < gameProc.renderer.camera.viewportWidth - 26 && - screenY > gameProc.renderer.camera.viewportHeight - 26) { - gameInput.touchDown(screenX, screenY, Input.Buttons.LEFT); - } else if (screenX > gameProc.renderer.camera.viewportWidth - 26 && - screenY > gameProc.renderer.camera.viewportHeight - 26) { - gameInput.touchDown(screenX, screenY, Input.Buttons.RIGHT); - } else if (screenX > gameProc.renderer.camera.viewportWidth / 2 - 52 && - screenX < gameProc.renderer.camera.viewportWidth / 2 + 52 && - screenY > gameProc.renderer.camera.viewportHeight - 26) { - gameInput.keyDown(Input.Keys.SPACE); - } - } else { - 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(); - if (CaveGame.TOUCH) { - if (screenX>26 && screenX<52 && - screenY>gameProc.renderer.camera.viewportHeight-52 && - screenY0 && screenX<26 && - screenY>gameProc.renderer.camera.viewportHeight-26) { - gameInput.keyUp(Input.Keys.A); - } else if (screenX>26 && screenX<52 && - screenY>gameProc.renderer.camera.viewportHeight-26) { - gameInput.keyUp(Input.Keys.S); - } else if (screenX>52 && screenX<78 && - screenY>gameProc.renderer.camera.viewportHeight-26) { - gameInput.keyUp(Input.Keys.D); - } else if (screenX > 78 && screenX < 104 && - screenY > gameProc.renderer.camera.viewportHeight - 26) { - gameInput.keyUp(Input.Keys.ALT_LEFT); - } else if (screenX > gameProc.renderer.camera.viewportWidth - 52 && - screenX < gameProc.renderer.camera.viewportWidth - 26 && - screenY > gameProc.renderer.camera.viewportHeight - 26) { - gameInput.touchUp(screenX, screenY, Input.Buttons.LEFT); - } else if (screenX > gameProc.renderer.camera.viewportWidth - 26 && - screenY > gameProc.renderer.camera.viewportHeight - 26) { - gameInput.touchUp(screenX, screenY, Input.Buttons.RIGHT); - } else if (screenX > gameProc.renderer.camera.viewportWidth / 2 - 52 && - screenX < gameProc.renderer.camera.viewportWidth / 2 + 52 && - screenY > gameProc.renderer.camera.viewportHeight - 26) { - gameInput.keyUp(Input.Keys.SPACE); - } - } else { - 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; - } - } }