diff --git a/src/camera.rs b/src/camera.rs index 055e54a..fd26449 100644 --- a/src/camera.rs +++ b/src/camera.rs @@ -256,8 +256,7 @@ fn apply_input_to_player( angularvelocity.0 *= angular_slowdown.clamp(0.97, 1.0); } else { - if angularvelocity.length_squared() > 0.0000001 { - play_reactionwheel_sound = true; + if angularvelocity.length_squared() > 0.001 { angularvelocity.0 *= angular_slowdown; } else { @@ -268,20 +267,18 @@ fn apply_input_to_player( // Play sound effects if let Ok(sink) = electricmotor_sound_controller.get_single() { let volume = sink.volume(); - let max = (pitch_yaw_rot.length() * 10.0).clamp(0.2, 1.0); - let max_speed = 1.0; - let rise = 0.07; - let fall = 0.15; + let speed = sink.speed(); + let action = pitch_yaw_rot.length_squared().powf(0.2) * 0.0005; if play_reactionwheel_sound { - sink.set_volume((volume + rise).clamp(0.0, max)); - sink.set_speed((volume + rise).clamp(0.2, max * max_speed)); + sink.set_volume((volume + action).clamp(0.0, 1.0)); + sink.set_speed((speed + action * 0.2).clamp(0.2, 0.5)); sink.play() } else { if volume <= 0.01 { sink.pause() } else { - sink.set_volume((volume - fall).clamp(0.0, max)); - sink.set_speed((volume - fall).clamp(0.2, max * max_speed)); + sink.set_volume((volume - 0.01).clamp(0.0, 1.0)); + sink.set_speed((speed - 0.03).clamp(0.2, 0.5)); } } }