Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/client/StarClientApplication.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2025-05-18 16:44:29 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2025-05-18 16:44:29 +1000
commit4838a92ef39c22533544ce8456b0b6bcec1f12c1 (patch)
treeda752e99a51452c8c3cc14e16bd82469bfe65050 /source/client/StarClientApplication.cpp
parent8d1c30b3e38c2adfc66897e3e1476a37d4b496e9 (diff)
make camera free-look framerate-independant
Diffstat (limited to 'source/client/StarClientApplication.cpp')
-rw-r--r--source/client/StarClientApplication.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/source/client/StarClientApplication.cpp b/source/client/StarClientApplication.cpp
index f79226e..dfe79eb 100644
--- a/source/client/StarClientApplication.cpp
+++ b/source/client/StarClientApplication.cpp
@@ -1213,12 +1213,13 @@ void ClientApplication::updateCamera(float dt) {
const float deadzone = 0.1f;
const float panFactor = 1.5f;
float cameraSpeedFactor = 30.0f / m_root->configuration()->get("cameraSpeedFactor").toFloat();
+ cameraSpeedFactor /= (dt * 60.f);
auto playerCameraPosition = m_player->cameraPosition();
if (isActionTaken(InterfaceAction::CameraShift)) {
m_snapBackCameraOffset = false;
- m_cameraOffsetDownTicks++;
+ m_cameraOffsetDownTime += dt;
Vec2F aim = m_universeClient->worldClient()->geometry().diff(m_mainInterface->cursorWorldPosition(), playerCameraPosition);
float magnitude = aim.magnitude() / (triggerRadius / camera.pixelRatio());
@@ -1234,13 +1235,13 @@ void ClientApplication::updateCamera(float dt) {
m_cameraYOffset = (m_cameraYOffset * (cameraSpeedFactor - 1.0) + cameraYOffset) / cameraSpeedFactor;
}
} else {
- if ((m_cameraOffsetDownTicks > 0) && (m_cameraOffsetDownTicks < 20))
+ if (m_cameraOffsetDownTime > 0.0f && m_cameraOffsetDownTime < 0.333333f)
m_snapBackCameraOffset = true;
if (m_snapBackCameraOffset) {
m_cameraXOffset = (m_cameraXOffset * (cameraSpeedFactor - 1.0)) / cameraSpeedFactor;
m_cameraYOffset = (m_cameraYOffset * (cameraSpeedFactor - 1.0)) / cameraSpeedFactor;
}
- m_cameraOffsetDownTicks = 0;
+ m_cameraOffsetDownTime = 0.f;
}
Vec2F newCameraPosition;