aboutsummaryrefslogtreecommitdiff
path: root/game/src
diff options
context:
space:
mode:
author BrickPi <49528459+BrickPi@users.noreply.github.com>2023-02-26 17:09:13 +0100
committer GitHub <noreply@github.com>2023-02-26 17:09:13 +0100
commita37c5085c3b7ee515789d681c8c18d71071fb771 (patch)
tree7b57a387e008c168c9f4a39b123681dc684cadf2 /game/src
parent17270d65023184bd1eed10aea223f91947bea8e8 (diff)
Add Sound Effect Manager (#25)
Diffstat (limited to 'game/src')
-rw-r--r--game/src/Autoload/SFX.gd20
-rw-r--r--game/src/MainMenu/MainMenu.gd5
2 files changed, 25 insertions, 0 deletions
diff --git a/game/src/Autoload/SFX.gd b/game/src/Autoload/SFX.gd
new file mode 100644
index 0000000..5299848
--- /dev/null
+++ b/game/src/Autoload/SFX.gd
@@ -0,0 +1,20 @@
+extends Node
+
+var _loaded_sfx = {}
+
+func _ready():
+ var dir = DirAccess.open("res://audio/sfx/")
+ for fname in dir.get_files():
+ if fname.get_extension() == "ogg":
+ _loaded_sfx[fname.get_basename()] = load("res://audio/sfx/" + fname) # SND-10
+
+# SND-7
+func play(sound):
+ var player = AudioStreamPlayer.new()
+ player.bus = "SFX"
+ player.stream = _loaded_sfx[sound]
+ add_child(player)
+ player.play()
+ await player.finished
+ remove_child(player)
+
diff --git a/game/src/MainMenu/MainMenu.gd b/game/src/MainMenu/MainMenu.gd
index 000dc69..cd333a3 100644
--- a/game/src/MainMenu/MainMenu.gd
+++ b/game/src/MainMenu/MainMenu.gd
@@ -12,23 +12,28 @@ func _ready():
func _on_new_game_button_pressed():
+ SFX.play("click")
print("Start a new game!")
get_tree().change_scene_to_file("res://src/SampleGame.tscn")
func _on_continue_button_pressed():
+ SFX.play("click")
print("Continue last game!")
func _on_multi_player_button_pressed():
+ SFX.play("click")
print("Have fun with friends!")
func _on_options_button_pressed():
+ SFX.play("click")
print("Check out some options!")
options_button_pressed.emit()
func _on_exit_button_pressed():
+ await SFX.play("click")
print("See you later!")
get_tree().quit()