diff --git a/core/src/ru/deadsoftware/cavecraft/GameScreen.java b/core/src/ru/deadsoftware/cavecraft/GameScreen.java
index 209d32bb058b39ea8d62d5087e667ee6142e7fc6..2a2c262a6f4fe3cb0a36feb45f33f996080cc091 100644 (file)
public static int FPS;
private GameProc gameProc;
- private GameInputHandler gameInput;
public GameScreen() {
Assets.load();
Items.load();
gameProc = new GameProc();
- gameInput = new GameInputHandler(gameProc);
- Gdx.input.setInputProcessor(new InputHandler());
+ Gdx.input.setInputProcessor(new InputHandler(gameProc));
}
public static int getWidth() {
@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();
}
- 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;
- }
- }
}