Browse Source

Rend le volume de la musique et des bruits paramétrable

DricomDragon 11 months ago
parent
commit
351d93ed71

+ 32 - 9
godot/composants/interface/pause/pause_menu.tscn

@@ -1,7 +1,8 @@
-[gd_scene load_steps=3 format=3 uid="uid://cvsfngjyx7xvw"]
+[gd_scene load_steps=4 format=3 uid="uid://cvsfngjyx7xvw"]
 
 [ext_resource type="Script" path="res://composants/interface/pause/pause_menu.gd" id="1_c51fd"]
 [ext_resource type="Texture2D" uid="uid://bkupreskydgkg" path="res://composants/interface/pause/sprite.png" id="2_2pxrh"]
+[ext_resource type="Script" path="res://composants/interface/pause/volume_control.gd" id="3_5at13"]
 
 [node name="PauseMenu" type="VSplitContainer"]
 process_mode = 3
@@ -20,25 +21,47 @@ layout_mode = 2
 texture = ExtResource("2_2pxrh")
 stretch_mode = 3
 
-[node name="Buttons" type="VBoxContainer" parent="."]
+[node name="VSplitContainer" type="VSplitContainer" parent="."]
+layout_mode = 2
+
+[node name="Buttons" type="VBoxContainer" parent="VSplitContainer"]
 process_mode = 2
 layout_mode = 2
 size_flags_horizontal = 4
-size_flags_vertical = 4
+size_flags_vertical = 0
 
-[node name="Reprendre" type="Button" parent="Buttons"]
+[node name="Reprendre" type="Button" parent="VSplitContainer/Buttons"]
 unique_name_in_owner = true
 layout_mode = 2
 text = "Reprendre"
 
-[node name="RetourEcranTitre" type="Button" parent="Buttons"]
+[node name="RetourEcranTitre" type="Button" parent="VSplitContainer/Buttons"]
 layout_mode = 2
 text = "Retour écran titre"
 
-[node name="QuitterLeJeu" type="Button" parent="Buttons"]
+[node name="QuitterLeJeu" type="Button" parent="VSplitContainer/Buttons"]
 layout_mode = 2
 text = "Quitter le jeu"
 
-[connection signal="pressed" from="Buttons/Reprendre" to="." method="_quand_bouton_reprendre_est_presse"]
-[connection signal="pressed" from="Buttons/RetourEcranTitre" to="." method="_quand_bouton_retour_titre_est_presse"]
-[connection signal="pressed" from="Buttons/QuitterLeJeu" to="." method="_quand_bouton_quitter_est_presse"]
+[node name="VolumeControl" type="HBoxContainer" parent="VSplitContainer"]
+layout_mode = 2
+size_flags_vertical = 8
+script = ExtResource("3_5at13")
+
+[node name="Musique" type="HSlider" parent="VSplitContainer/VolumeControl"]
+layout_mode = 2
+size_flags_horizontal = 3
+min_value = -60.0
+max_value = 0.0
+
+[node name="Bruits" type="HSlider" parent="VSplitContainer/VolumeControl"]
+layout_mode = 2
+size_flags_horizontal = 3
+min_value = -60.0
+max_value = 0.0
+
+[connection signal="pressed" from="VSplitContainer/Buttons/Reprendre" to="." method="_quand_bouton_reprendre_est_presse"]
+[connection signal="pressed" from="VSplitContainer/Buttons/RetourEcranTitre" to="." method="_quand_bouton_retour_titre_est_presse"]
+[connection signal="pressed" from="VSplitContainer/Buttons/QuitterLeJeu" to="." method="_quand_bouton_quitter_est_presse"]
+[connection signal="value_changed" from="VSplitContainer/VolumeControl/Musique" to="VSplitContainer/VolumeControl" method="_quand_volume_musique_change"]
+[connection signal="value_changed" from="VSplitContainer/VolumeControl/Bruits" to="VSplitContainer/VolumeControl" method="_quand_volume_bruits_change"]

+ 14 - 0
godot/composants/interface/pause/volume_control.gd

@@ -0,0 +1,14 @@
+extends Control
+
+
+func _quand_volume_musique_change(nouveau_volume: float) -> void:
+	_ajuster_volume("Musique", nouveau_volume)
+
+
+func _quand_volume_bruits_change(nouveau_volume: float) -> void:
+	_ajuster_volume("Bruits", nouveau_volume)
+
+
+func _ajuster_volume(nom_bus: String, nouveau_volume: float) -> void:
+	var index_bus: int = AudioServer.get_bus_index(nom_bus)
+	AudioServer.set_bus_volume_db(index_bus, nouveau_volume)