From 3abef2dc741c68e759d83dfb2f41b6d5c3fce70c Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Tue, 8 Aug 2023 21:38:46 +0200 Subject: [PATCH] feat: Play sounds scene independent --- src/Autoload/GlobalAudio.gd | 12 ++ src/Levels/1 Tutorial Level.tscn | 115 +++++++++++++++++- src/UserInterface/Buttons/PlayButton.gd | 1 + .../Screens/InGameMenu/PauseScreen.tscn | 3 +- .../Screens/MainMenu/MainScreen.tscn | 1 - src/UserInterface/TutorialComboThingy.tscn | 1 + src/UserInterface/TutorialThingy.tscn | 1 + 7 files changed, 129 insertions(+), 5 deletions(-) diff --git a/src/Autoload/GlobalAudio.gd b/src/Autoload/GlobalAudio.gd index 487b284..3ea1930 100644 --- a/src/Autoload/GlobalAudio.gd +++ b/src/Autoload/GlobalAudio.gd @@ -1,2 +1,14 @@ extends Node +var disposable_player: AudioStreamPlayer +func play_scene_independent(sound_name: String, bus: String = "Master", attenuation: float = 0.0) -> void: + disposable_player = AudioStreamPlayer.new() + add_child(disposable_player) + disposable_player.stream = GlobalState.sound_library[sound_name] + disposable_player.volume_db = attenuation + disposable_player.bus = bus + disposable_player.play() + disposable_player.connect("finished", self, "dispose_player") + +func dispose_player(player: AudioStreamPlayer = disposable_player) -> void: + player.queue_free() diff --git a/src/Levels/1 Tutorial Level.tscn b/src/Levels/1 Tutorial Level.tscn index 85dc69e..6f2c1af 100644 --- a/src/Levels/1 Tutorial Level.tscn +++ b/src/Levels/1 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=27 format=2] +[gd_scene load_steps=28 format=2] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=1] [ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=2] @@ -17,6 +17,7 @@ [ext_resource path="res://src/UserInterface/TutorialThingy.tscn" type="PackedScene" id=15] [ext_resource path="res://assets/effects/pixelDissolve.gdshader" type="Shader" id=16] [ext_resource path="res://assets/effects/noise.png" type="Texture" id=17] +[ext_resource path="res://src/ObstacleObjects/Mine.tscn" type="PackedScene" id=18] [sub_resource type="AnimationNodeStateMachinePlayback" id=14] @@ -164,10 +165,10 @@ unique_name_in_owner = true process_mode = 1 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 8 +frame = 9 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 7 +frame = 8 [node name="Blobby" parent="." instance=ExtResource( 7 )] unique_name_in_owner = true @@ -596,6 +597,114 @@ anims/cease_4_exist = SubResource( 10 ) [node name="CollisionShape2D" parent="Tutorials/RightTut/StartTutorialArea" index="0"] position = Vector2( -24.5, 0 ) +[node name="Mine" parent="." instance=ExtResource( 18 )] +position = Vector2( 31, -6 ) + +[node name="Mine3" parent="." instance=ExtResource( 18 )] +position = Vector2( 31, -24 ) + +[node name="Mine2" parent="." instance=ExtResource( 18 )] +position = Vector2( 31, -41 ) + +[node name="Mine4" parent="." instance=ExtResource( 18 )] +position = Vector2( 48, -6 ) + +[node name="Mine5" parent="." instance=ExtResource( 18 )] +position = Vector2( 48, -24 ) + +[node name="Mine6" parent="." instance=ExtResource( 18 )] +position = Vector2( 48, -41 ) + +[node name="Mine7" parent="." instance=ExtResource( 18 )] +position = Vector2( 63, -6 ) + +[node name="Mine8" parent="." instance=ExtResource( 18 )] +position = Vector2( 63, -24 ) + +[node name="Mine9" parent="." instance=ExtResource( 18 )] +position = Vector2( 63, -41 ) + +[node name="Mine10" parent="." instance=ExtResource( 18 )] +position = Vector2( 80, -6 ) + +[node name="Mine11" parent="." instance=ExtResource( 18 )] +position = Vector2( 80, -24 ) + +[node name="Mine12" parent="." instance=ExtResource( 18 )] +position = Vector2( 80, -41 ) + +[node name="Mine13" parent="." instance=ExtResource( 18 )] +position = Vector2( 95, -6 ) + +[node name="Mine14" parent="." instance=ExtResource( 18 )] +position = Vector2( 95, -24 ) + +[node name="Mine15" parent="." instance=ExtResource( 18 )] +position = Vector2( 95, -41 ) + +[node name="Mine16" parent="." instance=ExtResource( 18 )] +position = Vector2( 112, -6 ) + +[node name="Mine17" parent="." instance=ExtResource( 18 )] +position = Vector2( 112, -24 ) + +[node name="Mine18" parent="." instance=ExtResource( 18 )] +position = Vector2( 112, -41 ) + +[node name="Mine19" parent="." instance=ExtResource( 18 )] +position = Vector2( 128, -6 ) + +[node name="Mine20" parent="." instance=ExtResource( 18 )] +position = Vector2( 128, -24 ) + +[node name="Mine21" parent="." instance=ExtResource( 18 )] +position = Vector2( 128, -41 ) + +[node name="Mine22" parent="." instance=ExtResource( 18 )] +position = Vector2( 145, -6 ) + +[node name="Mine23" parent="." instance=ExtResource( 18 )] +position = Vector2( 145, -24 ) + +[node name="Mine24" parent="." instance=ExtResource( 18 )] +position = Vector2( 145, -41 ) + +[node name="Mine25" parent="." instance=ExtResource( 18 )] +position = Vector2( 160, -6 ) + +[node name="Mine26" parent="." instance=ExtResource( 18 )] +position = Vector2( 160, -24 ) + +[node name="Mine27" parent="." instance=ExtResource( 18 )] +position = Vector2( 160, -41 ) + +[node name="Mine28" parent="." instance=ExtResource( 18 )] +position = Vector2( 177, -6 ) + +[node name="Mine29" parent="." instance=ExtResource( 18 )] +position = Vector2( 177, -24 ) + +[node name="Mine30" parent="." instance=ExtResource( 18 )] +position = Vector2( 177, -41 ) + +[node name="Mine31" parent="." instance=ExtResource( 18 )] +position = Vector2( 192, -6 ) + +[node name="Mine32" parent="." instance=ExtResource( 18 )] +position = Vector2( 192, -24 ) + +[node name="Mine33" parent="." instance=ExtResource( 18 )] +position = Vector2( 192, -41 ) + +[node name="Mine34" parent="." instance=ExtResource( 18 )] +position = Vector2( 209, -6 ) + +[node name="Mine35" parent="." instance=ExtResource( 18 )] +position = Vector2( 209, -24 ) + +[node name="Mine36" parent="." instance=ExtResource( 18 )] +position = Vector2( 209, -41 ) + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [editable path="SignalManager"] diff --git a/src/UserInterface/Buttons/PlayButton.gd b/src/UserInterface/Buttons/PlayButton.gd index 27f42b8..9958680 100644 --- a/src/UserInterface/Buttons/PlayButton.gd +++ b/src/UserInterface/Buttons/PlayButton.gd @@ -4,6 +4,7 @@ export(String, FILE) var next_scene_path: String = "" onready var selected_level_base_path: String = "res://src/Levels/" func _on_button_up() -> void: + GlobalAudio.play_scene_independent("res://assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_Deep_stereo.wav", "Effects", -5) get_tree().change_scene(next_scene_path) get_tree().get_current_scene().queue_free() get_tree().paused = false diff --git a/src/UserInterface/Screens/InGameMenu/PauseScreen.tscn b/src/UserInterface/Screens/InGameMenu/PauseScreen.tscn index 835bd9d..144690b 100644 --- a/src/UserInterface/Screens/InGameMenu/PauseScreen.tscn +++ b/src/UserInterface/Screens/InGameMenu/PauseScreen.tscn @@ -763,7 +763,8 @@ margin_bottom = 250.0 focus_neighbour_top = NodePath("../RetryButton") focus_neighbour_bottom = NodePath("../Continue") text = "Main Menu" -next_scene_path = "res://src/UserInterface/Screens/MainMenu/MainScreen.tscn" +script = ExtResource( 29 ) +next_screen_path = "res://src/UserInterface/Screens/MainMenu/MainScreen.tscn" [node name="PauseLabel" type="Label" parent="PauseOverlay"] anchor_left = 0.5 diff --git a/src/UserInterface/Screens/MainMenu/MainScreen.tscn b/src/UserInterface/Screens/MainMenu/MainScreen.tscn index a764345..d9bfd2e 100644 --- a/src/UserInterface/Screens/MainMenu/MainScreen.tscn +++ b/src/UserInterface/Screens/MainMenu/MainScreen.tscn @@ -157,7 +157,6 @@ margin_bottom = 30.0 focus_neighbour_top = NodePath("../QuitButton") focus_neighbour_bottom = NodePath("../Controlls") theme = ExtResource( 13 ) -press_sound = "res://assets/sounds/MAGIC_SPELL_Bending_Synth_Climb_stereo.wav" next_scene_path = "res://src/Levels/1 Tutorial Level.tscn" [node name="Controlls" parent="MenuContainer/Buttons" instance=ExtResource( 3 )] diff --git a/src/UserInterface/TutorialComboThingy.tscn b/src/UserInterface/TutorialComboThingy.tscn index 6251e48..cb7bc65 100644 --- a/src/UserInterface/TutorialComboThingy.tscn +++ b/src/UserInterface/TutorialComboThingy.tscn @@ -146,6 +146,7 @@ extents = Vector2( 61, 8 ) [node name="TutorialComboThingy" type="Node2D"] physics_interpolation_mode = 2 +z_index = 10 script = ExtResource( 1 ) goal_state = "running" tutorial_text = "Press to run:" diff --git a/src/UserInterface/TutorialThingy.tscn b/src/UserInterface/TutorialThingy.tscn index f04f82c..b44c724 100644 --- a/src/UserInterface/TutorialThingy.tscn +++ b/src/UserInterface/TutorialThingy.tscn @@ -142,6 +142,7 @@ extents = Vector2( 62, 71 ) [node name="TutorialThingy" type="Node2D"] physics_interpolation_mode = 2 visible = false +z_index = 10 script = ExtResource( 2 ) action = "jump" tutorial_text = "Press to Jump:"