fix: GlobalAudio with weakrefs, sound changes

This commit is contained in:
Jakob Feldmann 2023-08-23 23:42:53 +02:00
parent 03de721811
commit 30bbc8c561
9 changed files with 47 additions and 26 deletions

View File

@ -4406,5 +4406,5 @@ one_shot = true
[connection signal="got_grounded" from="BlobbyStateMachine" to="." method="_on_Blobby_got_grounded"] [connection signal="got_grounded" from="BlobbyStateMachine" to="." method="_on_Blobby_got_grounded"]
[connection signal="timeout" from="BlobbyStateMachine/JumpBufferTimer" to="BlobbyStateMachine" method="_on_JumpBufferTimer_timeout"] [connection signal="timeout" from="BlobbyStateMachine/JumpBufferTimer" to="BlobbyStateMachine" method="_on_JumpBufferTimer_timeout"]
[connection signal="timeout" from="InvincibilityTimer" to="." method="_on_InvincibilityTimer_timeout"] [connection signal="timeout" from="InvincibilityTimer" to="." method="_on_InvincibilityTimer_timeout"]
[connection signal="timeout" from="PitfallTimer" to="." method="die_for_real"]
[connection signal="timeout" from="PitfallTimer" to="." method="_on_PitfallTimer_timeout"] [connection signal="timeout" from="PitfallTimer" to="." method="_on_PitfallTimer_timeout"]
[connection signal="timeout" from="PitfallTimer" to="." method="die_for_real"]

View File

@ -1,25 +1,29 @@
extends Node extends Node
onready var players: Dictionary = {} onready var players: Dictionary = {}
var disposable_player: AudioStreamPlayer
func play_scene_independent(sound_name: String, bus: String = "Master", attenuation: float = 0.0, singleton = false) -> void: func play_scene_independent(sound_name: String, bus: String = "Master", attenuation: float = 0.0,
singleton = false, start_time = 0.0, random_pitch = false) -> void:
if singleton && players.has(sound_name): if singleton && players.has(sound_name):
return return
disposable_player = AudioStreamPlayer.new() var disposable_player = AudioStreamPlayer.new()
add_child(disposable_player) add_child(disposable_player)
disposable_player.stream = GlobalState.sound_library[sound_name] var stream = GlobalState.sound_library[sound_name]
if random_pitch:
stream = AudioStreamRandomPitch.new()
stream.audio_stream = GlobalState.sound_library[sound_name]
disposable_player.stream = stream
disposable_player.volume_db = attenuation disposable_player.volume_db = attenuation
disposable_player.bus = bus disposable_player.bus = bus
disposable_player.play() disposable_player.play(start_time)
disposable_player.connect("finished", self, "dispose_player") disposable_player.connect("finished", self, "dispose_player", [weakref(disposable_player)])
players[sound_name] = disposable_player players[sound_name] = weakref(disposable_player)
func dispose_player(player: AudioStreamPlayer = disposable_player) -> void: func dispose_player(player: WeakRef) -> void:
if player == null: return if !player.get_ref(): return
player.queue_free() player.get_ref().queue_free()
func stop_scene_independent(sound_name: String): func stop_scene_independent(sound_name: String):
if players.has(sound_name): if players.has(sound_name) && players[sound_name].get_ref():
dispose_player(players[sound_name]) dispose_player(players[sound_name])
players.erase(sound_name) players.erase(sound_name)

View File

@ -5,3 +5,5 @@
[node name="GlobalAudio" type="Node"] [node name="GlobalAudio" type="Node"]
pause_mode = 2 pause_mode = 2
script = ExtResource( 1 ) script = ExtResource( 1 )
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]

View File

@ -208,14 +208,11 @@ unique_name_in_owner = true
process_mode = 1 process_mode = 1
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
frame = 12 frame = 1
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
frame = 11
[node name="Blobby" parent="." instance=ExtResource( 7 )] [node name="Blobby" parent="." instance=ExtResource( 7 )]
unique_name_in_owner = true unique_name_in_owner = true
position = Vector2( -70, -1.90735e-06 ) position = Vector2( -70, 1 )
scale = Vector2( 0.878906, 0.936025 ) scale = Vector2( 0.878906, 0.936025 )
[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"]

View File

@ -1034,11 +1034,8 @@ unique_name_in_owner = true
drag_margin_top = 0.1 drag_margin_top = 0.1
drag_margin_bottom = 0.1 drag_margin_bottom = 0.1
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
frame = 8
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
frame = 2 frame = 3
[node name="Blobby" parent="." instance=ExtResource( 8 )] [node name="Blobby" parent="." instance=ExtResource( 8 )]
unique_name_in_owner = true unique_name_in_owner = true

View File

@ -1,4 +1,4 @@
[gd_resource type="AudioBusLayout" load_steps=9 format=2] [gd_resource type="AudioBusLayout" load_steps=11 format=2]
[sub_resource type="AudioEffectPitchShift" id=1] [sub_resource type="AudioEffectPitchShift" id=1]
resource_name = "PitchShift" resource_name = "PitchShift"
@ -40,6 +40,15 @@ resource_name = "HighPassFilter"
resource_name = "LowPassFilter" resource_name = "LowPassFilter"
cutoff_hz = 3000.0 cutoff_hz = 3000.0
[sub_resource type="AudioEffectDistortion" id=9]
resource_name = "Distortion"
mode = 4
keep_hf_hz = 1000.0
post_gain = -5.0
[sub_resource type="AudioEffectLowPassFilter" id=10]
resource_name = "LowPassFilter"
[resource] [resource]
bus/0/volume_db = -6.0206 bus/0/volume_db = -6.0206
bus/1/name = "Music" bus/1/name = "Music"
@ -76,3 +85,13 @@ bus/3/effect/1/effect = SubResource( 7 )
bus/3/effect/1/enabled = false bus/3/effect/1/enabled = false
bus/3/effect/2/effect = SubResource( 8 ) bus/3/effect/2/effect = SubResource( 8 )
bus/3/effect/2/enabled = true bus/3/effect/2/enabled = true
bus/4/name = "Blobby"
bus/4/solo = false
bus/4/mute = false
bus/4/bypass_fx = false
bus/4/volume_db = 0.0
bus/4/send = "Master"
bus/4/effect/0/effect = SubResource( 9 )
bus/4/effect/0/enabled = true
bus/4/effect/1/effect = SubResource( 10 )
bus/4/effect/1/enabled = true

View File

@ -210,6 +210,8 @@ func _enter_state(new_state, old_state):
if !["run", "walk", "idle", "duck"].has(old_state) && parent.is_on_floor(): if !["run", "walk", "idle", "duck"].has(old_state) && parent.is_on_floor():
emit_signal("got_grounded") emit_signal("got_grounded")
GlobalAudio.play_scene_independent("res://assets/sounds/landingMedHard.ogg", "Effects",
-15.0, false, 0.10, true)
match new_state: match new_state:

View File

@ -6,7 +6,7 @@
[ext_resource path="res://assets/environment/decor/screen/Screen3.png" type="Texture" id=4] [ext_resource path="res://assets/environment/decor/screen/Screen3.png" type="Texture" id=4]
[ext_resource path="res://assets/ui/fonts/kenny_thick.tres" type="DynamicFont" id=5] [ext_resource path="res://assets/ui/fonts/kenny_thick.tres" type="DynamicFont" id=5]
[ext_resource path="res://addons/controller_icons/assets/ps4/cross.png" type="Texture" id=6] [ext_resource path="res://addons/controller_icons/assets/ps4/cross.png" type="Texture" id=6]
[ext_resource path="res://assets/sounds/huuray.wav" type="AudioStream" id=7] [ext_resource path="res://assets/sounds/vibing.wav" type="AudioStream" id=7]
[ext_resource path="res://assets/effects/noise.png" type="Texture" id=8] [ext_resource path="res://assets/effects/noise.png" type="Texture" id=8]
[sub_resource type="Shader" id=13] [sub_resource type="Shader" id=13]
@ -267,7 +267,7 @@ shape = SubResource( 6 )
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 7 ) stream = ExtResource( 7 )
volume_db = -10.0 volume_db = -14.439
bus = "UI" bus = "UI"
[connection signal="area_entered" from="Area" to="." method="_on_Area_area_entered"] [connection signal="area_entered" from="Area" to="." method="_on_Area_area_entered"]

View File

@ -1,11 +1,11 @@
[gd_scene load_steps=18 format=2] [gd_scene load_steps=18 format=2]
[ext_resource path="res://assets/sounds/vibing.wav" type="AudioStream" id=1]
[ext_resource path="res://src/UserInterface/TutorialThingy.gd" type="Script" id=2] [ext_resource path="res://src/UserInterface/TutorialThingy.gd" type="Script" id=2]
[ext_resource path="res://addons/controller_icons/objects/Button.gd" type="Script" id=3] [ext_resource path="res://addons/controller_icons/objects/Button.gd" type="Script" id=3]
[ext_resource path="res://assets/environment/decor/screen/Screen3.png" type="Texture" id=4] [ext_resource path="res://assets/environment/decor/screen/Screen3.png" type="Texture" id=4]
[ext_resource path="res://assets/ui/fonts/kenny_thick.tres" type="DynamicFont" id=5] [ext_resource path="res://assets/ui/fonts/kenny_thick.tres" type="DynamicFont" id=5]
[ext_resource path="res://addons/controller_icons/assets/ps4/cross.png" type="Texture" id=6] [ext_resource path="res://addons/controller_icons/assets/ps4/cross.png" type="Texture" id=6]
[ext_resource path="res://assets/sounds/huuray.wav" type="AudioStream" id=7]
[ext_resource path="res://assets/effects/noise.png" type="Texture" id=8] [ext_resource path="res://assets/effects/noise.png" type="Texture" id=8]
[sub_resource type="Shader" id=13] [sub_resource type="Shader" id=13]
@ -221,7 +221,7 @@ monitorable = false
shape = SubResource( 6 ) shape = SubResource( 6 )
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 7 ) stream = ExtResource( 1 )
volume_db = -14.776 volume_db = -14.776
bus = "UI" bus = "UI"