X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2Fgame%2FGameInputHandler.java;h=c288afface0331516b5feb2969414f3fecfd1c46;hb=e5f474791112f95004f7e8f8ec96661884d7373f;hp=313675d414b6788dfa8b1ca935677f87dd0cbd87;hpb=48de33432d9615967da21b22b950bd526b330572;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/game/GameInputHandler.java b/core/src/ru/deadsoftware/cavecraft/game/GameInputHandler.java index 313675d..c288aff 100644 --- a/core/src/ru/deadsoftware/cavecraft/game/GameInputHandler.java +++ b/core/src/ru/deadsoftware/cavecraft/game/GameInputHandler.java @@ -1,7 +1,11 @@ package ru.deadsoftware.cavecraft.game; +import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.utils.TimeUtils; +import ru.deadsoftware.cavecraft.Assets; +import ru.deadsoftware.cavecraft.GameScreen; +import ru.deadsoftware.cavecraft.Items; public class GameInputHandler { @@ -49,14 +53,34 @@ public class GameInputHandler { gameProc.cursorY = (int)(gameProc.player.position.y/16); if (gameProc.ctrlMode > 1) gameProc.ctrlMode = 0; } - if (keyCode == Input.Keys.SPACE && - gameProc.player.canJump) gameProc.player.moveY.add(0, -8); + 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.E) { + gameProc.renderer.showCreative = !gameProc.renderer.showCreative; + } } public void keyUp(int keyCode) { 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) { @@ -67,6 +91,19 @@ public class GameInputHandler { gameProc.touchDownY = screenY; gameProc.touchDownTime = TimeUtils.millis(); gameProc.isTouchDown = true; + if (gameProc.renderer.showCreative) { + try { + int ix = (int)(screenX-(gameProc.renderer.camera.viewportWidth/2-Assets.creativeInv.getRegionWidth()/2+8))/18; + int iy = (int)(screenY-(gameProc.renderer.camera.viewportHeight/2 - Assets.creativeInv.getRegionHeight()/2+18))/18; + int item = ix+iy*8; + for (int i=8; i>0; i--) { + gameProc.player.inventory[i] = gameProc.player.inventory[i-1]; + } + if (item>=0 && item