mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 17:17:58 +02:00
Fix avatar pitch rate depending on FPS
This commit is contained in:
parent
f5d66bbf2e
commit
d73e3a5490
1 changed files with 1 additions and 7 deletions
|
@ -2834,13 +2834,7 @@ void Application::update(float deltaTime) {
|
||||||
myAvatar->setDriveKeys(TRANSLATE_Y, userInputMapper->getActionState(controller::Action::TRANSLATE_Y));
|
myAvatar->setDriveKeys(TRANSLATE_Y, userInputMapper->getActionState(controller::Action::TRANSLATE_Y));
|
||||||
myAvatar->setDriveKeys(TRANSLATE_X, userInputMapper->getActionState(controller::Action::TRANSLATE_X));
|
myAvatar->setDriveKeys(TRANSLATE_X, userInputMapper->getActionState(controller::Action::TRANSLATE_X));
|
||||||
if (deltaTime > FLT_EPSILON) {
|
if (deltaTime > FLT_EPSILON) {
|
||||||
// For rotations what we really want are meausures of "angles per second" (in order to prevent
|
myAvatar->setDriveKeys(PITCH, -1.0f * userInputMapper->getActionState(controller::Action::PITCH));
|
||||||
// fps-dependent spin rates) so we need to scale the units of the controller contribution.
|
|
||||||
// (TODO?: maybe we should similarly scale ALL action state info, or change the expected behavior
|
|
||||||
// controllers to provide a delta_per_second value rather than a raw delta.)
|
|
||||||
const float EXPECTED_FRAME_RATE = 60.0f;
|
|
||||||
float timeFactor = EXPECTED_FRAME_RATE * deltaTime;
|
|
||||||
myAvatar->setDriveKeys(PITCH, -1.0f * userInputMapper->getActionState(controller::Action::PITCH) / timeFactor);
|
|
||||||
myAvatar->setDriveKeys(YAW, -1.0f * userInputMapper->getActionState(controller::Action::YAW));
|
myAvatar->setDriveKeys(YAW, -1.0f * userInputMapper->getActionState(controller::Action::YAW));
|
||||||
myAvatar->setDriveKeys(STEP_YAW, -1.0f * userInputMapper->getActionState(controller::Action::STEP_YAW));
|
myAvatar->setDriveKeys(STEP_YAW, -1.0f * userInputMapper->getActionState(controller::Action::STEP_YAW));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue