Add sound management
This commit is contained in:
parent
28fd165018
commit
43bd8cb8fc
9
default_bus_layout.tres
Normal file
9
default_bus_layout.tres
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[gd_resource type="AudioBusLayout" format=3 uid="uid://cpmscnqvdpn8f"]
|
||||
|
||||
[resource]
|
||||
bus/1/name = &"SFX"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
bus/1/bypass_fx = false
|
||||
bus/1/volume_db = 0.0
|
||||
bus/1/send = &"Master"
|
||||
|
|
@ -21,6 +21,7 @@ config/icon="res://icon.svg"
|
|||
|
||||
ControllerIcons="*uid://b7ho1rjcpht1d"
|
||||
GameData="*uid://d4beiel88cwc7"
|
||||
UiAudio="*uid://7e7fe2xk3aue"
|
||||
|
||||
[display]
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ extends Node
|
|||
|
||||
@export var progression_backgrounds: Array[Texture2D] = []
|
||||
@export var menu_music: AudioStream
|
||||
@export var start_click_sound: AudioStream
|
||||
|
||||
const GAME_SCENE_PATH := "res://scenes/main.tscn"
|
||||
const MUSIC_FADE_DURATION := 0.8
|
||||
|
|
@ -53,8 +54,12 @@ func fade_in_game_infos() -> void:
|
|||
func _on_start_pressed() -> void:
|
||||
if is_transitioning: return
|
||||
is_transitioning = true
|
||||
play_click_sound()
|
||||
start_transition_to(GAME_SCENE_PATH)
|
||||
|
||||
func play_click_sound() -> void:
|
||||
UiAudio.play(start_click_sound)
|
||||
|
||||
func _on_quit_pressed() -> void:
|
||||
get_tree().quit()
|
||||
|
||||
|
|
|
|||
18
scripts/ui_audio.gd
Normal file
18
scripts/ui_audio.gd
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
extends Node
|
||||
# Autoload : UiAudio
|
||||
# Gère les sons d'interface (boutons, menus, pause...) indépendamment des scènes,
|
||||
# pour qu'un son ne soit jamais coupé par un changement de scène.
|
||||
|
||||
@export var bus : StringName = &"SFX" # doit exister dans Audio Bus Layout, sinon utilise "Master"
|
||||
|
||||
func play(stream : AudioStream, volume_db : float = 0.0) -> void:
|
||||
if !stream: return
|
||||
|
||||
var player := AudioStreamPlayer.new()
|
||||
player.stream = stream
|
||||
player.volume_db = volume_db
|
||||
player.bus = bus if AudioServer.get_bus_index(bus) != -1 else &"Master"
|
||||
|
||||
add_child(player)
|
||||
player.play()
|
||||
player.finished.connect(player.queue_free)
|
||||
1
scripts/ui_audio.gd.uid
Normal file
1
scripts/ui_audio.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://7e7fe2xk3aue
|
||||
Loading…
Reference in a new issue