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"
|
ControllerIcons="*uid://b7ho1rjcpht1d"
|
||||||
GameData="*uid://d4beiel88cwc7"
|
GameData="*uid://d4beiel88cwc7"
|
||||||
|
UiAudio="*uid://7e7fe2xk3aue"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ extends Node
|
||||||
|
|
||||||
@export var progression_backgrounds: Array[Texture2D] = []
|
@export var progression_backgrounds: Array[Texture2D] = []
|
||||||
@export var menu_music: AudioStream
|
@export var menu_music: AudioStream
|
||||||
|
@export var start_click_sound: AudioStream
|
||||||
|
|
||||||
const GAME_SCENE_PATH := "res://scenes/main.tscn"
|
const GAME_SCENE_PATH := "res://scenes/main.tscn"
|
||||||
const MUSIC_FADE_DURATION := 0.8
|
const MUSIC_FADE_DURATION := 0.8
|
||||||
|
|
@ -53,8 +54,12 @@ func fade_in_game_infos() -> void:
|
||||||
func _on_start_pressed() -> void:
|
func _on_start_pressed() -> void:
|
||||||
if is_transitioning: return
|
if is_transitioning: return
|
||||||
is_transitioning = true
|
is_transitioning = true
|
||||||
|
play_click_sound()
|
||||||
start_transition_to(GAME_SCENE_PATH)
|
start_transition_to(GAME_SCENE_PATH)
|
||||||
|
|
||||||
|
func play_click_sound() -> void:
|
||||||
|
UiAudio.play(start_click_sound)
|
||||||
|
|
||||||
func _on_quit_pressed() -> void:
|
func _on_quit_pressed() -> void:
|
||||||
get_tree().quit()
|
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