diff --git a/MonogameLibrary/UI/Elements/CheckBox.cs b/MonogameLibrary/UI/Elements/CheckBox.cs index 5d927ca..b8eec17 100644 --- a/MonogameLibrary/UI/Elements/CheckBox.cs +++ b/MonogameLibrary/UI/Elements/CheckBox.cs @@ -24,6 +24,10 @@ namespace MonogameLibrary.UI.Elements private bool isChecked; HoverState hoverState = HoverState.None; public bool GetChecked { get { return isChecked; } } + public void SetIsChecked(bool isChecked) + { + this.isChecked=isChecked; + } public bool InteractUpdate(MouseState mouseState, MouseState prevmouseState) { if (rectangle.Intersects(new Rectangle(mouseState.Position, Point.Zero))) diff --git a/ZoFo/Content/Content.mgcb b/ZoFo/Content/Content.mgcb index f9ac38a..cdcfaeb 100644 --- a/ZoFo/Content/Content.mgcb +++ b/ZoFo/Content/Content.mgcb @@ -34,6 +34,56 @@ /processorParam:TextureFormat=Compressed /build:Fonts/Font3.spritefont +#begin sounds/Loot.wav +/importer:WavImporter +/processor:SoundEffectProcessor +/processorParam:Quality=Best +/build:sounds/Loot.wav + +#begin sounds/Odevanie odezdi.wav +/importer:WavImporter +/processor:SoundEffectProcessor +/processorParam:Quality=Best +/build:sounds/Odevanie odezdi.wav + +#begin sounds/Pieot wodichky.wav +/importer:WavImporter +/processor:SoundEffectProcessor +/processorParam:Quality=Best +/build:sounds/Pieot wodichky.wav + +#begin sounds/Sshetchik geigera.wav +/importer:WavImporter +/processor:SoundEffectProcessor +/processorParam:Quality=Best +/build:sounds/Sshetchik geigera.wav + +#begin sounds/Tabletki 2.wav +/importer:WavImporter +/processor:SoundEffectProcessor +/processorParam:Quality=Best +/build:sounds/Tabletki 2.wav + +#begin sounds/Tabletki.mp3 +/importer:Mp3Importer +/processor:SongProcessor +/processorParam:Quality=Best +/build:sounds/Tabletki.mp3 + +#begin sounds/Zombi napal.wav +/importer:WavImporter +/processor:SoundEffectProcessor +/processorParam:Quality=Best +/build:sounds/Zombi napal.wav + +#begin sounds/Zombi stoit.wav +/importer:WavImporter +/processor:SoundEffectProcessor +/processorParam:Quality=Best +/build:sounds/Zombi stoit.wav + +#begin Textures/GUI/checkboxs_off.png + #begin Textures/GUI/background/base.png /importer:TextureImporter /processor:TextureProcessor @@ -92,9 +142,9 @@ /processorParam:ResizeToPowerOfTwo=False /processorParam:MakeSquare=False /processorParam:TextureFormat=Color -/build:Textures/GUI/checkboxs_off-on.png +/build:Textures/GUI/checkboxs_off.png -#begin Textures/GUI/checkboxs_off.png +#begin Textures/GUI/checkboxs_off-on.png /importer:TextureImporter /processor:TextureProcessor /processorParam:ColorKeyColor=255,0,255,255 @@ -104,7 +154,7 @@ /processorParam:ResizeToPowerOfTwo=False /processorParam:MakeSquare=False /processorParam:TextureFormat=Color -/build:Textures/GUI/checkboxs_off.png +/build:Textures/GUI/checkboxs_off-on.png #begin Textures/GUI/checkboxs_on.png /importer:TextureImporter @@ -142,18 +192,6 @@ /processorParam:TextureFormat=Color /build:Textures/GUI/mouse.png -#begin Textures/GUI/Switch_backgrownd.png -/importer:TextureImporter -/processor:TextureProcessor -/processorParam:ColorKeyColor=255,0,255,255 -/processorParam:ColorKeyEnabled=True -/processorParam:GenerateMipmaps=False -/processorParam:PremultiplyAlpha=True -/processorParam:ResizeToPowerOfTwo=False -/processorParam:MakeSquare=False -/processorParam:TextureFormat=Color -/build:Textures/GUI/Switch_backgrownd.png - #begin Textures/GUI/switch.png /importer:TextureImporter /processor:TextureProcessor @@ -166,3 +204,15 @@ /processorParam:TextureFormat=Color /build:Textures/GUI/switch.png +#begin Textures/GUI/Switch_backgrownd.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Textures/GUI/Switch_backgrownd.png + diff --git a/ZoFo/Content/sounds/Loot.wav b/ZoFo/Content/sounds/Loot.wav new file mode 100644 index 0000000..a382185 Binary files /dev/null and b/ZoFo/Content/sounds/Loot.wav differ diff --git a/ZoFo/Content/sounds/Odevanie odezdi.wav b/ZoFo/Content/sounds/Odevanie odezdi.wav new file mode 100644 index 0000000..348d8e0 Binary files /dev/null and b/ZoFo/Content/sounds/Odevanie odezdi.wav differ diff --git a/ZoFo/Content/sounds/Pieot wodichky.wav b/ZoFo/Content/sounds/Pieot wodichky.wav new file mode 100644 index 0000000..3105cdb Binary files /dev/null and b/ZoFo/Content/sounds/Pieot wodichky.wav differ diff --git a/ZoFo/Content/sounds/Sshetchik geigera.wav b/ZoFo/Content/sounds/Sshetchik geigera.wav new file mode 100644 index 0000000..c57f374 Binary files /dev/null and b/ZoFo/Content/sounds/Sshetchik geigera.wav differ diff --git a/ZoFo/Content/sounds/Tabletki 2.wav b/ZoFo/Content/sounds/Tabletki 2.wav new file mode 100644 index 0000000..166f3ca Binary files /dev/null and b/ZoFo/Content/sounds/Tabletki 2.wav differ diff --git a/ZoFo/Content/sounds/Tabletki.mp3 b/ZoFo/Content/sounds/Tabletki.mp3 new file mode 100644 index 0000000..1a44967 Binary files /dev/null and b/ZoFo/Content/sounds/Tabletki.mp3 differ diff --git a/ZoFo/Content/sounds/Zombi napal.wav b/ZoFo/Content/sounds/Zombi napal.wav new file mode 100644 index 0000000..df0b208 Binary files /dev/null and b/ZoFo/Content/sounds/Zombi napal.wav differ diff --git a/ZoFo/Content/sounds/Zombi stoit.wav b/ZoFo/Content/sounds/Zombi stoit.wav new file mode 100644 index 0000000..7b64f89 Binary files /dev/null and b/ZoFo/Content/sounds/Zombi stoit.wav differ diff --git a/ZoFo/GameCore/GUI/OptionsGUI.cs b/ZoFo/GameCore/GUI/OptionsGUI.cs index a60611b..991c04b 100644 --- a/ZoFo/GameCore/GUI/OptionsGUI.cs +++ b/ZoFo/GameCore/GUI/OptionsGUI.cs @@ -35,9 +35,10 @@ public class OptionsGUI : AbstractGUI var slider_OverallVolume = new Slider(Manager) { rectangle = new Rectangle(width / 2, height / 3, width / 10, height / 20), indentation = 4, textureName = "Textures\\GUI\\Switch_backgrownd", MinValue = 0, MaxValue = 1 }; + slider_OverallVolume.SetValue(AppManager.Instance.SettingsManager.MainVolume); slider_OverallVolume.SliderChanged += (newVal) => { - + AppManager.Instance.SettingsManager.SetMainVolume(newVal); }; Elements.Add(slider_OverallVolume); @@ -47,9 +48,10 @@ public class OptionsGUI : AbstractGUI var slider_MusicVolume = new Slider(Manager) { rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 1, width / 10, height / 20), indentation = 4, textureName = "Textures\\GUI\\Switch_backgrownd", MinValue = 0, MaxValue = 1 }; + slider_MusicVolume.SetValue(AppManager.Instance.SettingsManager.MusicVolume); slider_MusicVolume.SliderChanged += (newVal) => { - + AppManager.Instance.SettingsManager.SetMusicVolume(newVal); }; Elements.Add(slider_MusicVolume); @@ -60,9 +62,10 @@ public class OptionsGUI : AbstractGUI var slider_EffectsVolume = new Slider(Manager) { rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 2, width / 10, height / 20), indentation = 4, textureName = "Textures\\GUI\\Switch_backgrownd", MinValue = 0, MaxValue = 1 }; + slider_EffectsVolume.SetValue(AppManager.Instance.SettingsManager.SoundEffectsVolume); slider_EffectsVolume.SliderChanged += (newVal) => { - + AppManager.Instance.SettingsManager.SetSoundEffectsVolume(newVal); }; Elements.Add(slider_EffectsVolume); @@ -80,9 +83,10 @@ public class OptionsGUI : AbstractGUI Elements.Add(label_IsFullScreen); var button_FullScreen = new CheckBox(Manager) { rectangle = new Rectangle(width / 2, height / 3 + (height / 20 + height / 40) * 4, width / 40, width / 40) }; + button_FullScreen.SetIsChecked(AppManager.Instance.SettingsManager.IsFullScreen); button_FullScreen.Checked += (newCheckState) => { - + AppManager.Instance.SettingsManager.SetIsFullScreen(newCheckState); }; Elements.Add(button_FullScreen); diff --git a/ZoFo/GameCore/GameManagers/AppManager.cs b/ZoFo/GameCore/GameManagers/AppManager.cs index c2c8756..1eda28b 100644 --- a/ZoFo/GameCore/GameManagers/AppManager.cs +++ b/ZoFo/GameCore/GameManagers/AppManager.cs @@ -36,6 +36,8 @@ namespace ZoFo.GameCore.GameManagers public InputManager InputManager; public ItemManager.ItemManager ItemManager; + public SettingsManager SettingsManager; + public SoundManager SoundManager; public AnimationBuilder animationBuilder { get; set; } @@ -53,8 +55,11 @@ namespace ZoFo.GameCore.GameManagers Instance = this; InputManager = new InputManager(); - - + SettingsManager = new SettingsManager(); + SettingsManager.LoadSettings(); + SoundManager = new SoundManager(); + SoundManager.LoadSounds(); + currentGUI = new MainMenuGUI(); debugHud = new DebugHUD(); diff --git a/ZoFo/GameCore/GameManagers/SoundManager.cs b/ZoFo/GameCore/GameManagers/SoundManager.cs index d99211e..0494dae 100644 --- a/ZoFo/GameCore/GameManagers/SoundManager.cs +++ b/ZoFo/GameCore/GameManagers/SoundManager.cs @@ -20,12 +20,12 @@ namespace ZoFo.GameCore.GameManagers public void LoadSounds() // метод для загрузки звуков из папки { - var k = Directory.GetFiles("../../..//Content//sounds").Where(x => x.EndsWith("mp3")); + var k = Directory.GetFiles("../../..//Content//sounds").Where(x => x.EndsWith("wav")); if (k.Count() > 0) { - string[] soundFiles = k.Select(x => x.Split("\\").Last().Split("/").Last().Replace(".mp3", "")).ToArray();// папка со звуками там где exe + string[] soundFiles = k.Select(x => x.Split("\\").Last().Split("/").Last().Replace(".wav", "")).ToArray();// папка со звуками там где exe foreach (var soundFile in soundFiles) { Sounds.Add(soundFile, AppManager.Instance.Content.Load("sounds//" + soundFile)); @@ -42,7 +42,7 @@ namespace ZoFo.GameCore.GameManagers public void StartAmbientSound(string soundName) // запустить звук у которого нет позиции { var sound = new Sound(Sounds[soundName].CreateInstance(), Vector2.One, true); - // ждать пока настройки появятся sound.SoundEffect.Volume = sound.baseVolume * AppManager.Instance.SettingsManager.MusicVolume * AppManager.Instance.SettingsManager.MainVolume; + sound.SoundEffect.Volume = sound.baseVolume * AppManager.Instance.SettingsManager.MusicVolume * AppManager.Instance.SettingsManager.MainVolume; sound.SoundEffect.IsLooped = false; sound.SoundEffect.Play(); @@ -57,7 +57,7 @@ namespace ZoFo.GameCore.GameManagers { var sound = new Sound(Sounds[soundName].CreateInstance(), soundPos, false) { baseVolume = baseVolume, basePich = pitch }; sound.SoundEffect.IsLooped = false; - //ждать пока настройки появятся sound.SoundEffect.Volume = sound.baseVolume * AppManager.Instance.SettingsManager.SoundEffectsVolume * AppManager.Instance.SettingsManager.MainVolume; + sound.SoundEffect.Volume = sound.baseVolume * AppManager.Instance.SettingsManager.SoundEffectsVolume * AppManager.Instance.SettingsManager.MainVolume; sound.SoundEffect.Pitch = pitch; sound.SoundEffect.Play(); PlayingSounds.Add(sound); @@ -78,7 +78,7 @@ namespace ZoFo.GameCore.GameManagers { for (int i = 0; i < PlayingSounds.Count; i++) { - //PlayingSounds[i].UpdateVolume(Vector2.Zero); + PlayingSounds[i].UpdateVolume(Vector2.Zero); if (PlayingSounds[i].SoundEffect.State == SoundState.Stopped) { PlayingSounds.Remove(PlayingSounds[i]); @@ -114,14 +114,14 @@ namespace ZoFo.GameCore.GameManagers SoundEffect = soundEffect; Position = position; } - /*/public void UpdateVolume(Vector2 playerPos) + public void UpdateVolume(Vector2 playerPos) { if (isAmbient) SoundEffect.Volume = baseVolume * AppManager.Instance.SettingsManager.MusicVolume * AppManager.Instance.SettingsManager.MainVolume; else SoundEffect.Volume = baseVolume * AppManager.Instance.SettingsManager.SoundEffectsVolume * AppManager.Instance.SettingsManager.MainVolume;// * (float)Math.Clamp(1 - GetDistanceVol(playerPos),0,1); - }/*/ + } public double GetDistanceVol(Vector2 playerPos) // получение дистанции до объедка от игрока { diff --git a/ZoFo/ZoFo.csproj b/ZoFo/ZoFo.csproj index 4c3c3f7..c3a2b36 100644 --- a/ZoFo/ZoFo.csproj +++ b/ZoFo/ZoFo.csproj @@ -32,6 +32,7 @@ +