feat: changed camera rotation speed
This commit is contained in:
parent
d456634061
commit
988bd53159
|
@ -68,17 +68,18 @@ void TunnelsPlayer::process_mouse_location(double delta_time) {
|
|||
|
||||
void TunnelsPlayer::process_camera_rotation(double delta_time) {
|
||||
Vector3 rotation = this->get_global_rotation();
|
||||
float const y_multiplier = std::max(TunnelsPlayer::ROTATION_Y_MIN_INFLUENCE, this->mouse_location.y); // the influence of the mouse's y position on the rotation speed
|
||||
// the influence of the mouse's y position on the rotation speed
|
||||
float const y_multiplier = std::max(TunnelsPlayer::ROTATION_Y_MIN_INFLUENCE, this->mouse_location.y);
|
||||
// rotate the camera when the mouse is close to the edge of the screen
|
||||
if(this->mouse_location.x < TunnelsPlayer::ROTATION_MARGIN) {
|
||||
// normalized measurement of how far into the rotation margin the mouse is
|
||||
float const normalized{1.f - (this->mouse_location.x / TunnelsPlayer::ROTATION_MARGIN)};
|
||||
// rotate based on delta time and use a curve to make the rotation zone feel more natural
|
||||
rotation.y += delta_time * TunnelsPlayer::ROTATION_SPEED * camera_rotation_ramp->sample(normalized) * y_multiplier;
|
||||
rotation.y += delta_time * double(TunnelsPlayer::ROTATION_SPEED * camera_rotation_ramp->sample(normalized) * y_multiplier);
|
||||
}
|
||||
if(this->mouse_location.x > 1.f - TunnelsPlayer::ROTATION_MARGIN) {
|
||||
float const normalized{((this->mouse_location.x - (1.f - TunnelsPlayer::ROTATION_MARGIN)) / TunnelsPlayer::ROTATION_MARGIN)};
|
||||
rotation.y -= delta_time * TunnelsPlayer::ROTATION_SPEED * camera_rotation_ramp->sample(normalized) * y_multiplier;
|
||||
rotation.y -= delta_time * double(TunnelsPlayer::ROTATION_SPEED * camera_rotation_ramp->sample(normalized) * y_multiplier);
|
||||
}
|
||||
|
||||
// wrap rotation to avoid going into invalid numbers
|
||||
|
@ -156,7 +157,7 @@ Ref<Curve> TunnelsPlayer::get_camera_rotation_ramp() const {
|
|||
return this->camera_rotation_ramp;
|
||||
}
|
||||
|
||||
float const TunnelsPlayer::ROTATION_SPEED{6.f};
|
||||
float const TunnelsPlayer::ROTATION_SPEED{0.5f};
|
||||
float const TunnelsPlayer::ROTATION_Y_MIN_INFLUENCE{7.f};
|
||||
float const TunnelsPlayer::ROTATION_MARGIN{0.4f};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue