添加音量设置

master
lightyears 2 years ago
parent 59cbd79f85
commit 10d0008017
Signed by: lightyears
GPG Key ID: 98D80DDF26D4F2F9

@ -17,6 +17,8 @@ namespace CMSGame
public VideoSettings VideoSettings => GetSettings<VideoSettings>();
public AudioSettings AudioSettings => GetSettings<AudioSettings>();
public GameSettings()
{
RegisterAllSettings();
@ -32,6 +34,7 @@ namespace CMSGame
{
RegisterSettings<BattleSettings>("BattleSettings.json");
RegisterSettings<VideoSettings>("VideoSettings.json");
RegisterSettings<AudioSettings>("AudioSettings.json");
}
protected void RegisterSettings<TSettings>(string filename) where TSettings : SettingsBase, new()

@ -0,0 +1,22 @@
namespace CMSGame
{
public partial class AudioSettingsMenu : VBoxContainer
{
public GameSettings? GameSettings;
public HSlider? MasterVolumeSlider;
public HSlider? MusicVolumeSlider;
public HSlider? SoundEffectVolumeSlider;
public override void _Ready()
{
this.GetAutoloadNode(ref GameSettings, nameof(GameSettings));
MasterVolumeSlider = this.GetUniqueNode<HSlider>(nameof(MasterVolumeSlider));
MusicVolumeSlider = this.GetUniqueNode<HSlider>(nameof(MusicVolumeSlider));
SoundEffectVolumeSlider = this.GetUniqueNode<HSlider>(nameof(SoundEffectVolumeSlider));
}
}
}

@ -0,0 +1,10 @@
namespace CMSGame
{
public partial class BattleSettingsMenu : VBoxContainer
{
public override void _Ready()
{
}
}
}

@ -0,0 +1,14 @@
namespace CMSGame
{
public partial class DeveloperOptionsMenu : VBoxContainer
{
public override void _Ready()
{
}
public void On_OpenUserDataDirButton_Pressed()
{
OS.ShellOpen(new GodotPath("user://"));
}
}
}

@ -0,0 +1,12 @@
namespace CMSGame
{
public partial class SettingsMenu : TabContainer
{
public GameSettings? Settings;
public override void _Ready()
{
this.GetAutoloadNode(ref Settings, nameof(GameSettings));
}
}
}

@ -0,0 +1,80 @@
[gd_scene load_steps=6 format=3 uid="uid://blk2uswpo2a7k"]
[ext_resource type="Script" path="res://Components/Settings/SettingsMenu.cs" id="1_av57b"]
[ext_resource type="Script" path="res://Components/Settings/DeveloperOptionsMenu.cs" id="2_dgytf"]
[ext_resource type="Script" path="res://Components/Settings/BattleSettingsMenu.cs" id="2_xtjo5"]
[ext_resource type="Script" path="res://Components/Settings/VideoSettingsMenu.cs" id="3_68iki"]
[ext_resource type="Script" path="res://Components/Settings/AudioSettingsMenu.cs" id="4_ciy5h"]
[node name="SettingsMenu" type="TabContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_av57b")
[node name="BattleSettingsMenu" type="VBoxContainer" parent="."]
unique_name_in_owner = true
visible = false
layout_mode = 2
script = ExtResource("2_xtjo5")
[node name="VideoSettingsMenu" type="VBoxContainer" parent="."]
unique_name_in_owner = true
visible = false
layout_mode = 2
script = ExtResource("3_68iki")
[node name="AudioSettingsMenu" type="VBoxContainer" parent="."]
unique_name_in_owner = true
layout_mode = 2
script = ExtResource("4_ciy5h")
[node name="GridContainer" type="GridContainer" parent="AudioSettingsMenu"]
layout_mode = 2
columns = 2
[node name="Label3" type="Label" parent="AudioSettingsMenu/GridContainer"]
layout_mode = 2
text = "主音量"
[node name="MasterVolumnSlider" type="HSlider" parent="AudioSettingsMenu/GridContainer"]
layout_mode = 2
max_value = 1.0
step = 0.01
value = 0.8
[node name="Label" type="Label" parent="AudioSettingsMenu/GridContainer"]
layout_mode = 2
text = "音乐音量"
[node name="MusicVolumnSlider" type="HSlider" parent="AudioSettingsMenu/GridContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
max_value = 1.0
step = 0.01
value = 0.8
[node name="Label2" type="Label" parent="AudioSettingsMenu/GridContainer"]
layout_mode = 2
text = "音效音量"
[node name="SoundEffectVolumnSlider" type="HSlider" parent="AudioSettingsMenu/GridContainer"]
unique_name_in_owner = true
layout_mode = 2
max_value = 1.0
step = 0.01
value = 0.8
[node name="DeveloperOptionsMenu" type="VBoxContainer" parent="."]
visible = false
layout_mode = 2
script = ExtResource("2_dgytf")
[node name="OpenUserDataDirButton" type="Button" parent="DeveloperOptionsMenu"]
layout_mode = 2
text = "打开用户数据目录"
[connection signal="pressed" from="DeveloperOptionsMenu/OpenUserDataDirButton" to="DeveloperOptionsMenu" method="On_OpenUserDataDirButton_Pressed"]

@ -1,7 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://cslqihnfw0me2"]
[ext_resource type="Script" path="res://Components/SettingsMenuPopup.cs" id="1_it4yp"]
[ext_resource type="PackedScene" uid="uid://blk2uswpo2a7k" path="res://Components/SettingsMenu.tscn" id="2_qc1kk"]
[ext_resource type="Script" path="res://Components/Settings/SettingsMenuPopup.cs" id="1_it4yp"]
[ext_resource type="PackedScene" uid="uid://blk2uswpo2a7k" path="res://Components/Settings/SettingsMenu.tscn" id="2_qc1kk"]
[node name="SettingsMenuPopup" type="Popup"]
size = Vector2i(172, 101)

@ -0,0 +1,10 @@
namespace CMSGame
{
public partial class VideoSettingsMenu : VBoxContainer
{
public override void _Ready()
{
}
}
}

@ -1,19 +0,0 @@
namespace CMSGame
{
public partial class SettingsMenu : VBoxContainer
{
public GameSettings? Settings;
public CheckBox? PauseBattleWhenCharacterIsSelectedCheckBox;
public override void _Ready()
{
this.GetAutoloadNode(ref Settings, nameof(GameSettings));
this.GetUniqueNode(ref PauseBattleWhenCharacterIsSelectedCheckBox, nameof(PauseBattleWhenCharacterIsSelectedCheckBox));
}
public void On_PauseBattleWhenCharacterIsSelectedCheckBox_Toggled(bool pressed)
{
}
}
}

@ -1,13 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://blk2uswpo2a7k"]
[ext_resource type="Script" path="res://Components/SettingsMenu.cs" id="1_b12ly"]
[node name="SettingsMenu" type="VBoxContainer"]
script = ExtResource("1_b12ly")
[node name="PauseBattleWhenCharacterIsSelectedCheckBox" type="CheckBox" parent="."]
unique_name_in_owner = true
layout_mode = 2
text = "选中角色时暂停战斗"
[connection signal="toggled" from="PauseBattleWhenCharacterIsSelectedCheckBox" to="." method="On_PauseBattleWhenCharacterIsSelectedCheckBox_Toggled"]

@ -24,29 +24,30 @@ text = "背景图像"
horizontal_alignment = 1
vertical_alignment = 1
[node name="GameMenu" type="VBoxContainer" parent="."]
[node name="StartMenu" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 85.0
offset_top = -50.5
offset_right = 221.0
offset_bottom = 50.5
offset_left = 151.0
offset_top = -65.5
offset_right = 287.0
offset_bottom = 65.5
grow_vertical = 2
theme_override_constants/separation = 16
[node name="StartButton" type="Button" parent="GameMenu"]
[node name="StartButton" type="Button" parent="StartMenu"]
layout_mode = 2
text = "开始游戏"
[node name="SettingsButton" type="Button" parent="GameMenu"]
[node name="SettingsButton" type="Button" parent="StartMenu"]
layout_mode = 2
text = "设置"
[node name="QuitButton" type="Button" parent="GameMenu"]
[node name="QuitButton" type="Button" parent="StartMenu"]
layout_mode = 2
text = "退出"
[connection signal="pressed" from="GameMenu/StartButton" to="." method="On_BattleDemo1Button_Pressed"]
[connection signal="pressed" from="GameMenu/SettingsButton" to="." method="On_SettingsPopupButton_Pressed"]
[connection signal="pressed" from="GameMenu/QuitButton" to="." method="On_QuitButton_Pressed"]
[connection signal="pressed" from="StartMenu/StartButton" to="." method="On_BattleDemo1Button_Pressed"]
[connection signal="pressed" from="StartMenu/SettingsButton" to="." method="On_SettingsPopupButton_Pressed"]
[connection signal="pressed" from="StartMenu/QuitButton" to="." method="On_QuitButton_Pressed"]

@ -7,3 +7,9 @@ bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 0.0
bus/1/send = &"Master"
bus/2/name = &"SoundEffect"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 0.0
bus/2/send = &"Master"

Loading…
Cancel
Save