From 331efe50309c4ce7ccbcfd5ce9887c3854b72330 Mon Sep 17 00:00:00 2001 From: a dinosaur Date: Wed, 16 Aug 2023 16:07:26 +1000 Subject: [PATCH] use both right stick axis for look offset --- src/main/kotlin/Colin.kt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/Colin.kt b/src/main/kotlin/Colin.kt index fce3629..03232ad 100644 --- a/src/main/kotlin/Colin.kt +++ b/src/main/kotlin/Colin.kt @@ -20,7 +20,7 @@ class Colin { private var pos = Vector2() private var angle = 0.0f - private var yangle = 0.0f + private var offsAngle = Vector2() private var cam: PerspectiveCamera private var nutted = false @@ -42,7 +42,7 @@ class Colin val forward = Vector3(0.0f, 0.0f, -1.0f) val up = Vector3(0.0f, 1.0f, 0.0f) val right = Vector3(1.0f, 0.0f, 0.0f) - cam.direction.set(forward.rotateRad(right, yangle).rotateRad(up, angle)) + cam.direction.set(forward.rotateRad(right, offsAngle.y).rotateRad(up, offsAngle.x + angle)) cam.update() } @@ -72,10 +72,13 @@ class Colin if (!stick.isZero) pos -= forward * stick.y * speed * deltaTime - yangle = Controllers.getCurrent()?.let { pad -> - val dst = pad.getAxis(pad.mapping.axisRightY).axisDeadzone(0.1f, 0.9f) - MathUtils.lerp(yangle, dst, 16.0f * deltaTime) - } ?: 0.0f + offsAngle = Controllers.getCurrent()?.let { pad -> + val dst = Vector2( + pad.getAxis(pad.mapping.axisRightX), + pad.getAxis(pad.mapping.axisRightY)) + .radialDeadzone(0.1f, 1.0f) * MathUtils.PI * -0.25f + offsAngle.lerp(dst, 16.0f * deltaTime) + } ?: Vector2.Zero if (Controllers.getCurrent()?.let { pad -> pad.getButton(pad.mapping.buttonA) } == true || Gdx.input.isKeyJustPressed(Input.Keys.N)) {