diff --git a/src/CameraController.hx b/src/CameraController.hx index 5586cb92..d08269f3 100644 --- a/src/CameraController.hx +++ b/src/CameraController.hx @@ -200,7 +200,7 @@ class CameraController extends Object { } function applyNonlinearScale(value:Float) { - return Math.pow(Math.abs(value), 3.2) * (value >= 0 ? 1 : -1); + return Math.pow(Math.abs(value), 1.6) * (value >= 0 ? 1 : -1); } public function startCenterCamera() { @@ -231,8 +231,8 @@ class CameraController extends Object { var lerpt = 1 - Math.pow(0.5, dt / 0.016); // Math.min(1, 1 - Math.pow(0.6, dt / 0.032)); // hxd.Math.min(1, 1 - Math.pow(0.6, dt * 600)); - var gamepadX = applyNonlinearScale(rescaleDeadZone(Gamepad.getAxis(Settings.gamepadSettings.cameraXAxis), 0.25)); - var gamepadY = applyNonlinearScale(rescaleDeadZone(Gamepad.getAxis(Settings.gamepadSettings.cameraYAxis), 0.25)); + var gamepadX = applyNonlinearScale(rescaleDeadZone(Gamepad.getAxis(Settings.gamepadSettings.cameraXAxis), Settings.gamepadSettings.axisDeadzone)); + var gamepadY = rescaleDeadZone(Gamepad.getAxis(Settings.gamepadSettings.cameraYAxis), Settings.gamepadSettings.axisDeadzone); if (gamepadX != 0.0 || gamepadY != 0.0) { wasLastGamepadInput = true; @@ -252,8 +252,13 @@ class CameraController extends Object { cameraPitchDelta = 0; } - var deltaX = 0.75 * 5 * cameraYawDelta * dt * Settings.gamepadSettings.cameraSensitivity; - var deltaY = 0.75 * 5 * cameraPitchDelta * dt * Settings.gamepadSettings.cameraSensitivity; + var gamePadSensitivity = 1.0; + if (wasLastGamepadInput) { + gamePadSensitivity = (1.6 - Settings.controlsSettings.cameraSensitivity); // It defaults to 0.6 + } + + var deltaX = 0.75 * 5 * cameraYawDelta * dt * gamePadSensitivity; + var deltaY = 0.75 * 5 * cameraPitchDelta * dt * gamePadSensitivity; var deltaNew = deltaX;