From bc428260facb92efb83b58a079a5e5374c42a3ad Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Sun, 29 Mar 2026 11:05:05 +0100 Subject: [PATCH] try to make touch camera better --- src/touch/CameraInput.hx | 24 +++++++++++++++++------- src/touch/PauseButton.hx | 1 - 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/touch/CameraInput.hx b/src/touch/CameraInput.hx index 3a05a495..b36fbb50 100644 --- a/src/touch/CameraInput.hx +++ b/src/touch/CameraInput.hx @@ -87,14 +87,24 @@ class CameraInput { if (jumpcam) { scaleFactor /= Settings.touchSettings.buttonJoystickMultiplier; } - if (Math.abs(delta.x) < 0.05) - delta.x = 0; - if (Math.abs(delta.y) < 0.05) - delta.y = 0; - MarbleGame.instance.world.marble.camera.orbit(applyNonlinearScale(delta.x / scaleFactor), applyNonlinearScale(delta.y / scaleFactor), true); - if (delta.x != 0) + var inpX = delta.x / scaleFactor; + var inpY = delta.y / scaleFactor; + + if (jumpcam) { + if (Math.abs(inpX) < 1.3) + inpX = 0; + if (Math.abs(inpY) < 1.3) + inpY = 0; + } + + var dt = MarbleGame.instance.world.timeState.dt; + + MarbleGame.instance.world.marble.camera.orbit(applyNonlinearScale((inpX / dt) * (1 / 60.0)) * (1 / 60.0) * 20, + applyNonlinearScale((inpY / dt) * (1 / 60.0)) * (1 / 60.0) * 20, true); + + if (inpX != 0) prevMouse.x = e.relX; - if (delta.y != 0) + if (inpY != 0) prevMouse.y = e.relY; } } diff --git a/src/touch/PauseButton.hx b/src/touch/PauseButton.hx index c9a9f45c..3bf5dd36 100644 --- a/src/touch/PauseButton.hx +++ b/src/touch/PauseButton.hx @@ -13,7 +13,6 @@ class PauseButton extends TouchButton { this.onClick = () -> { if (MarbleGame.instance.world != null && @:privateAccess !MarbleGame.instance.paused) { - @:privateAccess MarbleGame.instance.paused = true; MarbleGame.instance.handlePauseGame(); } }