X-Git-Url: https://deadsoftware.ru/gitweb?p=cavedroid.git;a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2Fmisc%2FInputHandlerGame.java;h=9978e0c99a9edebe2b7620bf07d6bf43c5210036;hp=ffc38ccea589e80007e41a40c5c4af664472ef3e;hb=bea2a3c5b967bcd90ccd83e08e833d58449e963a;hpb=e7be8067d83f2a39c237ec7afbe115a846a74f3d diff --git a/core/src/ru/deadsoftware/cavecraft/misc/InputHandlerGame.java b/core/src/ru/deadsoftware/cavecraft/misc/InputHandlerGame.java index ffc38cc..9978e0c 100644 --- a/core/src/ru/deadsoftware/cavecraft/misc/InputHandlerGame.java +++ b/core/src/ru/deadsoftware/cavecraft/misc/InputHandlerGame.java @@ -42,20 +42,20 @@ public class InputHandlerGame implements InputProcessor { @Override public boolean touchDown(int screenX, int screenY, int pointer, int button) { - int tx = (int)(screenX * tWidth/getWidth()); - int ty = (int)(screenY * tHeight/getHeight()); - screenX *= gameProc.renderer.camera.viewportWidth/getWidth(); - screenY *= gameProc.renderer.camera.viewportHeight/getHeight(); + int tx = (int) (screenX * tWidth / getWidth()); + int ty = (int) (screenY * tHeight / getHeight()); + screenX *= gameProc.renderer.camera.viewportWidth / getWidth(); + screenY *= gameProc.renderer.camera.viewportHeight / getHeight(); if (CaveGame.TOUCH) { if (tx > 26 && tx < 52 && ty > tHeight - 52 && ty < tHeight - 26) { - if (gameProc.ctrlMode==1) gameInput.keyDown(Input.Keys.W); - else gameInput.keyDown(Input.Keys.SPACE); + if (gameProc.ctrlMode == 1) gameInput.keyDown(Input.Keys.W); + else gameInput.keyDown(Input.Keys.SPACE); } else if (tx > 0 && tx < 26 && ty > tHeight - 26) { gameInput.keyDown(Input.Keys.A); } else if (tx > 26 && tx < 52 && ty > tHeight - 26) { - if (gameProc.ctrlMode==1) gameInput.keyDown(Input.Keys.S); - else gameInput.keyDown(Input.Keys.CONTROL_LEFT); + if (gameProc.ctrlMode == 1) gameInput.keyDown(Input.Keys.S); + else gameInput.keyDown(Input.Keys.CONTROL_LEFT); } else if (tx > 52 && tx < 78 && ty > tHeight - 26) { gameInput.keyDown(Input.Keys.D); } else if (tx > 78 && tx < 104 && ty > tHeight - 26) { @@ -65,7 +65,7 @@ public class InputHandlerGame implements InputProcessor { } else if (tx > tWidth - 26 && screenY > ty - 26) { gameInput.touchDown(screenX, screenY, Input.Buttons.RIGHT); } else { - gameInput.touchDown(screenX, screenY, Input.Buttons.LEFT); + gameInput.touchDown(screenX, screenY, -1); } } else { gameInput.touchDown(screenX, screenY, button); @@ -75,18 +75,18 @@ public class InputHandlerGame implements InputProcessor { @Override public boolean touchUp(int screenX, int screenY, int pointer, int button) { - int tx = (int)(screenX * tWidth/getWidth()); - int ty = (int)(screenY * tHeight/getHeight()); - screenX *= gameProc.renderer.camera.viewportWidth/getWidth(); - screenY *= gameProc.renderer.camera.viewportHeight/getHeight(); + int tx = (int) (screenX * tWidth / getWidth()); + int ty = (int) (screenY * tHeight / getHeight()); + screenX *= gameProc.renderer.camera.viewportWidth / getWidth(); + screenY *= gameProc.renderer.camera.viewportHeight / getHeight(); if (CaveGame.TOUCH) { if (tx > 26 && tx < 52 && ty > tHeight - 52 && ty < tHeight - 26) { - if (gameProc.ctrlMode==1) gameInput.keyUp(Input.Keys.W); + if (gameProc.ctrlMode == 1) gameInput.keyUp(Input.Keys.W); else gameInput.keyUp(Input.Keys.SPACE); } else if (tx > 0 && tx < 26 && ty > tHeight - 26) { gameInput.keyUp(Input.Keys.A); } else if (tx > 26 && tx < 52 && ty > tHeight - 26) { - if (gameProc.ctrlMode==1) gameInput.keyUp(Input.Keys.S); + if (gameProc.ctrlMode == 1) gameInput.keyUp(Input.Keys.S); else gameInput.keyUp(Input.Keys.CONTROL_LEFT); } else if (tx > 52 && tx < 78 && ty > tHeight - 26) { gameInput.keyUp(Input.Keys.D); @@ -97,7 +97,7 @@ public class InputHandlerGame implements InputProcessor { } else if (tx > tWidth - 26 && screenY > ty - 26) { gameInput.touchUp(screenX, screenY, Input.Buttons.RIGHT); } else { - gameInput.touchUp(screenX, screenY, Input.Buttons.LEFT); + gameInput.touchUp(screenX, screenY, -1); } } else { gameInput.touchUp(screenX, screenY, button); @@ -107,17 +107,21 @@ public class InputHandlerGame implements InputProcessor { @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); + screenX *= gameProc.renderer.camera.viewportWidth / getWidth(); + screenY *= gameProc.renderer.camera.viewportHeight / getHeight(); + if (gameProc.isKeyDown && (screenX > 78 || screenY < gameProc.renderer.getHeight() - 52)) { + gameInput.keyUp(gameProc.keyDownCode); + } else { + 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); + screenX *= gameProc.renderer.camera.viewportWidth / getWidth(); + screenY *= gameProc.renderer.camera.viewportHeight / getHeight(); + gameInput.mouseMoved(screenX, screenY); return false; }