- using Config;
- using Godot;
-
- namespace UI.Setting;
-
- public partial class SettingPanel : Setting
- {
- public override void OnCreateUi()
- {
- if (PrevUi != null)
- {
- //返回上一级UI
- S_Back.Instance.Pressed += () =>
- {
- OpenPrevUi();
- };
- }
- else
- {
- S_Back.Instance.Pressed += () =>
- {
- Destroy();
- };
- }
-
- //声音设置BGM
- S_BGM.Instance.ValueChanged += (double v) =>
- {
- var value = (float)v;
- GameApplication.Instance.GameSave.BgmVolume = value;
- SoundManager.SetBusValue(BUS.BGM, value);
- };
- //声音设置SFX
- S_SFX.Instance.ValueChanged += (double v) =>
- {
- var value = (float)v;
- GameApplication.Instance.GameSave.SfxVolume = value;
- SoundManager.SetBusValue(BUS.SFX, value);
- };
- //声音设置设置BGM SFX的值
- S_SFX.Instance.VisibilityChanged += () =>
- {
- S_BGM.Instance.Value = GameApplication.Instance.GameSave.BgmVolume;
- S_SFX.Instance.Value = GameApplication.Instance.GameSave.SfxVolume;
- };
-
- //---------------------- 视频设置 -----------------------------
- //全屏属性
- S_FullScreen.L_CheckBox.Instance.ButtonPressed = DisplayServer.WindowGetMode() == DisplayServer.WindowMode.Fullscreen;
- S_FullScreen.L_CheckBox.Instance.Pressed += OnChangeFullScreen;
- //-----------------------------------------------------------
- }
-
- public override void OnDestroyUi()
- {
- GameApplication.Instance.GameSave.Save();
- }
-
- //切换全屏/非全屏
- private void OnChangeFullScreen()
- {
- var checkBox = S_FullScreen.L_CheckBox.Instance;
- GameApplication.Instance.GameSave.FullScreen = checkBox.ButtonPressed;
- if (checkBox.ButtonPressed)
- {
- DisplayServer.WindowSetMode(DisplayServer.WindowMode.Fullscreen);
- }
- else
- {
- DisplayServer.WindowSetMode(DisplayServer.WindowMode.Windowed);
- }
- }
-
- }