X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Finput%2Fhandler%2Ftouch%2FJoystickInputHandler.kt;h=1c020a5c189bd982493cd21b46f49c6687b62224;hb=b2f824726f647543e69f31ac5723df37750b5778;hp=d4fb451ee761a1033aafeb6f661fe918afb76bf9;hpb=f353e00257a70bb9cdee0e783558c68f5cb0d3d6;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/input/handler/touch/JoystickInputHandler.kt b/core/src/ru/deadsoftware/cavedroid/game/input/handler/touch/JoystickInputHandler.kt index d4fb451..1c020a5 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/input/handler/touch/JoystickInputHandler.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/input/handler/touch/JoystickInputHandler.kt @@ -31,7 +31,7 @@ class JoystickInputHandler @Inject constructor( set(value) { if (!value) { resetVelocity() - if (TimeUtils.timeSinceMillis(activateTimeMs) < 100L && + if (TimeUtils.timeSinceMillis(activateTimeMs) < 200L && mobsController.player.controlMode != Player.ControlMode.CURSOR) { mobsController.player.jump() } @@ -76,10 +76,13 @@ class JoystickInputHandler @Inject constructor( private fun handleCursor() { val joystick = mainConfig.joystick ?: return - if (TimeUtils.timeSinceMillis(cursorTimeoutMs) < 200L) { + if (TimeUtils.timeSinceMillis(cursorTimeoutMs) < 150L) { return } + val pastCursorX = mobsController.player.cursorX + val pastCursorY = mobsController.player.cursorY + if (Math.abs(joystick.activeX - joystick.centerX) >= Joystick.RADIUS / 2) { mobsController.player.cursorX += if (joystick.activeX > joystick.centerX) 1 else -1 cursorTimeoutMs = TimeUtils.millis() @@ -91,6 +94,10 @@ class JoystickInputHandler @Inject constructor( } mobsController.player.checkCursorBounds(gameWorld) + + if (mobsController.player.cursorX != pastCursorX || mobsController.player.cursorY != pastCursorY) { + mobsController.player.blockDamage = 0f + } } private fun handleDragged() { @@ -106,6 +113,10 @@ class JoystickInputHandler @Inject constructor( val joystick = mainConfig.joystick ?: return val joyVector = joystick.getVelocityVector() + if (mobsController.player.isFlyMode) { + joyVector.scl(2f); + } + mobsController.player.velocity.x = joyVector.x mobsController.player.setDir(