From 2bdced47eac5ac4dae6e3b5f8be232e9a30f44ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ensar=20Saraj=C4=8Di=C4=87?= Date: Sat, 13 Nov 2021 22:48:15 +0100 Subject: [PATCH] Add tire sounds --- default_env.tres | 2 ++ vehicles/buggy.gd | 2 +- vehicles/tire_smoke.gd | 19 +++++++++++++++++++ vehicles/tire_smoke.tscn | 11 ++++++++++- 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/default_env.tres b/default_env.tres index d6796c3..23b503a 100644 --- a/default_env.tres +++ b/default_env.tres @@ -5,4 +5,6 @@ [resource] background_mode = 2 background_sky = SubResource( 1 ) +fog_enabled = true +fog_depth_end = 482.6 dof_blur_far_distance = 136.42 diff --git a/vehicles/buggy.gd b/vehicles/buggy.gd index c6f413e..8664146 100644 --- a/vehicles/buggy.gd +++ b/vehicles/buggy.gd @@ -148,7 +148,7 @@ func _physics_process(delta: float): steering = steering_input * lerp(max_steer_angle_rad, speed_steer_angle_rad, steer_speed_factor) func _generate_engine_sound(rpm_factor): - engine_sound_player.pitch_scale = BASE_ENGINE_PITCH + rpm_factor + engine_sound_player.pitch_scale = BASE_ENGINE_PITCH + 2 * rpm_factor var to_fill = engine_sound_playback.get_frames_available() var factor = rpm_factor if to_fill <= 0: diff --git a/vehicles/tire_smoke.gd b/vehicles/tire_smoke.gd index bca2670..f478f7b 100644 --- a/vehicles/tire_smoke.gd +++ b/vehicles/tire_smoke.gd @@ -1,8 +1,27 @@ class_name TireSmoke extends Particles +onready var sound_player: AudioStreamPlayer3D = $tire_sound_player +onready var sound_playback: AudioStreamPlayback = $tire_sound_player.get_stream_playback() + +func _ready() -> void: + _update_sound(1) + # sound_player.play() + func update(skidinfo: float) -> void: + _update_sound(skidinfo) if skidinfo < 0.5: emitting = true else: emitting = false + +func _update_sound(skidinfo: float) -> void: + sound_player.pitch_scale = 1 + (1 - skidinfo) + var to_fill = sound_playback.get_frames_available() + var factor = (1 - skidinfo) * 2 + if to_fill <= 0: + return + while to_fill > 0: + sound_playback.push_frame(Vector2(1.0, 1.0) * factor) + factor += sin(factor) * 2 + to_fill -= 1 diff --git a/vehicles/tire_smoke.tscn b/vehicles/tire_smoke.tscn index 98fcf88..198fed4 100644 --- a/vehicles/tire_smoke.tscn +++ b/vehicles/tire_smoke.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://vehicles/tire_smoke.gd" type="Script" id=1] @@ -25,6 +25,9 @@ material = SubResource( 4 ) radial_segments = 4 rings = 4 +[sub_resource type="AudioStreamGenerator" id=6] +mix_rate = 5500.0 + [node name="tire_smoke" type="Particles"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.541801, 0 ) emitting = false @@ -34,3 +37,9 @@ local_coords = false process_material = SubResource( 3 ) draw_pass_1 = SubResource( 5 ) script = ExtResource( 1 ) + +[node name="tire_sound_player" type="AudioStreamPlayer3D" parent="."] +stream = SubResource( 6 ) +unit_db = 25.0 +unit_size = 2.0 +area_mask = 2