diff --git a/core/src/ru/deadsoftware/cavecraft/GameScreen.java b/core/src/ru/deadsoftware/cavecraft/GameScreen.java
index 209d32bb058b39ea8d62d5087e667ee6142e7fc6..c77c9e08032e6efe725cb6be42d07f248873464d 100644 (file)
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.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 {
public static int FPS;
+ public static boolean SHOW_DEBUG = false;
+ public static int NEW_GAME_MODE = 0;
- private GameProc gameProc;
- private GameInputHandler gameInput;
+ private 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() {
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) {
- FPS = (int)(1/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(NEW_GAME_MODE);
+ renderer = gp.renderer;
+ Gdx.input.setInputProcessor(new InputHandlerGame(gp));
+ CaveGame.STATE = AppState.GAME_PLAY;
+ break;
+
+ case LOAD_GAME:
+ gp = GameSaver.load();
+ renderer = gp.renderer;
+ Gdx.input.setInputProcessor(new InputHandlerGame(gp));
+ 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
}
- 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 &&
- screenY<gameProc.renderer.camera.viewportHeight-26) {
- gameInput.keyUp(Input.Keys.W);
- } else if (screenX>0 && 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;
- }
- }
}