X-Git-Url: https://deadsoftware.ru/gitweb?p=cavedroid.git;a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2Fgame%2FGameInputHandler.java;h=102a0f7b003f79471cca77e2dc3c65778debe6a3;hp=d63568cb1dad36a1cfd5bd16d310e6fe43297657;hb=769c26b45cc2bc91439f5f4f92bb7ac75fadfa91;hpb=7115b8cce5cc8469c03ea1fa1fc24506a1e2765e diff --git a/core/src/ru/deadsoftware/cavecraft/game/GameInputHandler.java b/core/src/ru/deadsoftware/cavecraft/game/GameInputHandler.java index d63568c..102a0f7 100644 --- a/core/src/ru/deadsoftware/cavecraft/game/GameInputHandler.java +++ b/core/src/ru/deadsoftware/cavecraft/game/GameInputHandler.java @@ -12,36 +12,71 @@ public class GameInputHandler { } public void keyDown(int keyCode) { - if (keyCode == Input.Keys.LEFT) { - gameProc.player.moveX.add(-GamePhysics.PL_SPEED,0); - gameProc.player.dir = 0; + if (gameProc.ctrlMode==0) { + if (keyCode == Input.Keys.A) { + gameProc.player.moveX.add(-GamePhysics.PL_SPEED, 0); + gameProc.player.dir = 0; + } + if (keyCode == Input.Keys.D) { + gameProc.player.moveX.add(GamePhysics.PL_SPEED, 0); + gameProc.player.dir = 1; + } + } else { + if (keyCode == Input.Keys.A) { + gameProc.cursorX--; + } + if (keyCode == Input.Keys.D) { + gameProc.cursorX++; + } + if (keyCode == Input.Keys.W) { + gameProc.cursorY--; + } + if (keyCode == Input.Keys.S) { + gameProc.cursorY++; + } + if (gameProc.cursorX < 0) + gameProc.cursorX = 0; + if (gameProc.cursorX >= gameProc.world.getWidth()) + gameProc.cursorX = gameProc.world.getWidth()-1; + if (gameProc.cursorY < 0) + gameProc.cursorY = 0; + if (gameProc.cursorY >= gameProc.world.getHeight()) + gameProc.cursorY = gameProc.world.getHeight()-1; + } + if (keyCode == Input.Keys.ALT_LEFT) { + gameProc.ctrlMode++; + gameProc.cursorX = (int)(gameProc.player.position.x/16); + gameProc.cursorY = (int)(gameProc.player.position.y/16); + if (gameProc.ctrlMode > 1) gameProc.ctrlMode = 0; } - if (keyCode == Input.Keys.RIGHT) { - gameProc.player.moveX.add(GamePhysics.PL_SPEED,0); - gameProc.player.dir = 1; + if (keyCode == Input.Keys.SPACE) { + if (gameProc.player.canJump) { + gameProc.player.moveY.add(0, -7); + } else if (!gameProc.player.flyMode) { + gameProc.player.flyMode = true; + gameProc.player.moveY.setZero(); + } else { + gameProc.player.moveY.y = -GamePhysics.PL_SPEED; + } + } + if (keyCode == Input.Keys.CONTROL_LEFT) { + gameProc.player.moveY.y = GamePhysics.PL_SPEED; } - if (keyCode == Input.Keys.UP && - gameProc.player.canJump) gameProc.player.moveY.add(0,-8); } public void keyUp(int keyCode) { - if (keyCode == Input.Keys.RIGHT || keyCode == Input.Keys.LEFT) { + if (keyCode == Input.Keys.A || keyCode == Input.Keys.D) { gameProc.player.moveX.x = 0; } + if (keyCode == Input.Keys.SPACE) { + if (gameProc.player.flyMode) gameProc.player.moveY.setZero(); + } + if (keyCode == Input.Keys.CONTROL_LEFT) { + if (gameProc.player.flyMode) gameProc.player.moveY.setZero(); + } } public void mouseMoved(int screenX, int screenY) { - gameProc.cursorX = (int)((screenX+gameProc.renderer.camera.position.x)/16); - gameProc.cursorY = (int)((screenY+gameProc.renderer.camera.position.y)/16); - if (gameProc.cursorX < 0) - gameProc.cursorX = 0; - if (gameProc.cursorX >= gameProc.world.getWidth()) - gameProc.cursorX = gameProc.world.getWidth()-1; - if (gameProc.cursorY < 0) - gameProc.cursorY = 0; - if (gameProc.cursorY >= gameProc.world.getHeight()) - gameProc.cursorY = gameProc.world.getHeight()-1; - } public void touchDown(int screenX, int screenY, int button) { @@ -68,11 +103,6 @@ public class GameInputHandler { } public void touchDragged(int screenX, int screenY) { - /*gameProc.renderer.camera.position.x += (gameProc.touchDownX-screenX); - gameProc.renderer.camera.position.y += (gameProc.touchDownY-screenY); - gameProc.touchDownX = screenX; - gameProc.touchDownY = screenY; - gameProc.isTouchDown = false;*/ } public void scrolled(int amount) {