1 package ru.deadsoftware.cavedroid.game.input
3 import com.badlogic.gdx.math.Vector2
4 import com.badlogic.gdx.utils.TimeUtils
7 private val value: Float,
25 private val stickVector = Vector2()
27 private var activateTimeMs = 0L
29 fun activate(touchX: Float, touchY: Float, pointer: Int) {
33 activateTimeMs = TimeUtils.millis()
34 this.pointer = pointer
41 fun getVelocityVector(): Vector2 {
47 stickVector.x * value,
52 fun updateState(touchX: Float, touchY: Float) {
57 stickVector.x = touchX - centerX
58 stickVector.y = touchY - centerY
59 stickVector.clamp(0f, RADIUS)
61 activeX = centerX + stickVector.x
62 activeY = centerY + stickVector.y
64 stickVector.x /= RADIUS
65 stickVector.y /= RADIUS
69 const val RADIUS = 24f
70 const val SIZE = RADIUS * 2
71 const val STICK_SIZE = 16f