X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2FGameScreen.java;h=209d32bb058b39ea8d62d5087e667ee6142e7fc6;hb=40312aaac2ec8bd1247ad5979f7bd1d8e47ecae3;hp=299dfa15ebefa8e54453e710422f7ff89f221352;hpb=5f7d6ee2ded67d412e861f09e102b52efb74d12c;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/GameScreen.java b/core/src/ru/deadsoftware/cavecraft/GameScreen.java index 299dfa1..209d32b 100644 --- a/core/src/ru/deadsoftware/cavecraft/GameScreen.java +++ b/core/src/ru/deadsoftware/cavecraft/GameScreen.java @@ -1,21 +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.game.GameRenderer; public class GameScreen implements Screen { + 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()); } @@ -34,13 +37,14 @@ public class GameScreen implements Screen { @Override public void render(float delta) { + FPS = (int)(1/delta); gameProc.update(delta); gameProc.renderer.render(); } @Override public void resize(int width, int height) { - + gameProc.resetRenderer(); } @Override @@ -67,11 +71,18 @@ public class GameScreen implements Screen { @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; } @@ -82,30 +93,101 @@ public class GameScreen implements Screen { @Override public boolean touchDown(int screenX, int screenY, int pointer, int button) { - gameInput.touchDown(screenX, screenY, 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) { - gameInput.touchUp(screenX, screenY, 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; } }