use both right stick axis for look offset

This commit is contained in:
2023-08-16 16:07:26 +10:00
parent 7bf7b0501c
commit 331efe5030

View File

@ -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))
{