From e1c2565f347e41920858364a6e88985bc75a9240 Mon Sep 17 00:00:00 2001 From: linuxfight Date: Wed, 16 Aug 2023 15:33:56 +0300 Subject: [PATCH] Added MasterVolume --- DangerousD/GameCore/Managers/SoundManager.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/DangerousD/GameCore/Managers/SoundManager.cs b/DangerousD/GameCore/Managers/SoundManager.cs index 2ffba1e..4067863 100644 --- a/DangerousD/GameCore/Managers/SoundManager.cs +++ b/DangerousD/GameCore/Managers/SoundManager.cs @@ -13,7 +13,8 @@ namespace DangerousD.GameCore public Dictionary Sounds = new Dictionary(); // словарь со звуками где строка - название файла public List PlayingSounds = new List(); // список со всеми звуками, которые проигрываются public string SoundDirectory = "Sounds"; // папка со звуками там где exe - public float MaxSoundDistance = 1500; // максимальная дальность звука + public float MaxSoundDistance = 1500f; // максимальная дальность звука + public float MasterVolume = 1f; // общая громкость public void LoadSounds(ContentManager content) // метод для загрузки звуков из папки { @@ -27,9 +28,9 @@ namespace DangerousD.GameCore public void StartSound(string soundName, bool isMusic) // запустить звук у которого нет позиции { var sound = new Sound(Sounds[soundName]); - sound.SoundEffect.IsLooped = false; if (isMusic) sound.SoundEffect.IsLooped = true; + sound.SoundEffect.Volume = MasterVolume; sound.SoundEffect.Play(); PlayingSounds.Add(sound); } @@ -38,7 +39,7 @@ namespace DangerousD.GameCore { var sound = new Sound(Sounds[soundName], soundPos); sound.SoundEffect.IsLooped = false; - sound.SoundEffect.Volume = (float)sound.GetDistance(playerPos) / MaxSoundDistance; + sound.SoundEffect.Volume = (float)sound.GetDistance(playerPos) / MaxSoundDistance * MasterVolume; sound.SoundEffect.Play(); PlayingSounds.Add(sound); }//GameManager.SendSound @@ -54,7 +55,7 @@ namespace DangerousD.GameCore foreach (var sound in PlayingSounds) { if (!sound.isAmbient) - sound.SoundEffect.Volume = (float)sound.GetDistance(playerPos) / MaxSoundDistance; + sound.SoundEffect.Volume = (float)sound.GetDistance(playerPos) / MaxSoundDistance * MasterVolume; if (sound.SoundEffect.State == SoundState.Stopped) PlayingSounds.Remove(sound); }