[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / input / handler / touch / JoystickInputHandler.kt
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 c175f31da86ba167d1b11a2daaaf13446585acbe..1c020a5c189bd982493cd21b46f49c6687b62224 100644 (file)
package ru.deadsoftware.cavedroid.game.input.handler.touch
package ru.deadsoftware.cavedroid.game.input.handler.touch
-import com.badlogic.gdx.math.Vector2
import com.badlogic.gdx.utils.TimeUtils
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import com.badlogic.gdx.utils.TimeUtils
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
set(value) {
if (!value) {
resetVelocity()
set(value) {
if (!value) {
resetVelocity()
- if (TimeUtils.timeSinceMillis(activateTimeMs) < 100L &&
+ if (TimeUtils.timeSinceMillis(activateTimeMs) < 200L &&
mobsController.player.controlMode != Player.ControlMode.CURSOR) {
mobsController.player.jump()
}
mobsController.player.controlMode != Player.ControlMode.CURSOR) {
mobsController.player.jump()
}
private fun handleCursor() {
val joystick = mainConfig.joystick ?: return
private fun handleCursor() {
val joystick = mainConfig.joystick ?: return
- if (TimeUtils.timeSinceMillis(cursorTimeoutMs) < 200L) {
+ if (TimeUtils.timeSinceMillis(cursorTimeoutMs) < 150L) {
return
}
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()
if (Math.abs(joystick.activeX - joystick.centerX) >= Joystick.RADIUS / 2) {
mobsController.player.cursorX += if (joystick.activeX > joystick.centerX) 1 else -1
cursorTimeoutMs = TimeUtils.millis()
}
mobsController.player.checkCursorBounds(gameWorld)
}
mobsController.player.checkCursorBounds(gameWorld)
+
+ if (mobsController.player.cursorX != pastCursorX || mobsController.player.cursorY != pastCursorY) {
+ mobsController.player.blockDamage = 0f
+ }
}
private fun handleDragged() {
}
private fun handleDragged() {
+ if (!active) {
+ return
+ }
+
if (mobsController.player.controlMode == Player.ControlMode.CURSOR) {
handleCursor()
return
if (mobsController.player.controlMode == Player.ControlMode.CURSOR) {
handleCursor()
return
val joystick = mainConfig.joystick ?: return
val joyVector = joystick.getVelocityVector()
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(
mobsController.player.velocity.x = joyVector.x
mobsController.player.setDir(