Merge pull request #29 from progtime-net/UpdateSettings

Update settings
This commit is contained in:
Kaktus200020 2024-08-16 16:46:20 +03:00 committed by GitHub
commit 1ca4f29729
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 92 additions and 28 deletions

View file

@ -24,6 +24,10 @@ namespace MonogameLibrary.UI.Elements
private bool isChecked; private bool isChecked;
HoverState hoverState = HoverState.None; HoverState hoverState = HoverState.None;
public bool GetChecked { get { return isChecked; } } public bool GetChecked { get { return isChecked; } }
public void SetIsChecked(bool isChecked)
{
this.isChecked=isChecked;
}
public bool InteractUpdate(MouseState mouseState, MouseState prevmouseState) public bool InteractUpdate(MouseState mouseState, MouseState prevmouseState)
{ {
if (rectangle.Intersects(new Rectangle(mouseState.Position, Point.Zero))) if (rectangle.Intersects(new Rectangle(mouseState.Position, Point.Zero)))

View file

@ -34,6 +34,56 @@
/processorParam:TextureFormat=Compressed /processorParam:TextureFormat=Compressed
/build:Fonts/Font3.spritefont /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 #begin Textures/GUI/background/base.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
@ -92,9 +142,9 @@
/processorParam:ResizeToPowerOfTwo=False /processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False /processorParam:MakeSquare=False
/processorParam:TextureFormat=Color /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 /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
/processorParam:ColorKeyColor=255,0,255,255 /processorParam:ColorKeyColor=255,0,255,255
@ -104,7 +154,7 @@
/processorParam:ResizeToPowerOfTwo=False /processorParam:ResizeToPowerOfTwo=False
/processorParam:MakeSquare=False /processorParam:MakeSquare=False
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/GUI/checkboxs_off.png /build:Textures/GUI/checkboxs_off-on.png
#begin Textures/GUI/checkboxs_on.png #begin Textures/GUI/checkboxs_on.png
/importer:TextureImporter /importer:TextureImporter
@ -142,18 +192,6 @@
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/GUI/mouse.png /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 #begin Textures/GUI/switch.png
/importer:TextureImporter /importer:TextureImporter
/processor:TextureProcessor /processor:TextureProcessor
@ -166,3 +204,15 @@
/processorParam:TextureFormat=Color /processorParam:TextureFormat=Color
/build:Textures/GUI/switch.png /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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -35,9 +35,10 @@ public class OptionsGUI : AbstractGUI
var slider_OverallVolume = new Slider(Manager) 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 }; { 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) => slider_OverallVolume.SliderChanged += (newVal) =>
{ {
AppManager.Instance.SettingsManager.SetMainVolume(newVal);
}; };
Elements.Add(slider_OverallVolume); Elements.Add(slider_OverallVolume);
@ -47,9 +48,10 @@ public class OptionsGUI : AbstractGUI
var slider_MusicVolume = new Slider(Manager) 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 }; { 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) => slider_MusicVolume.SliderChanged += (newVal) =>
{ {
AppManager.Instance.SettingsManager.SetMusicVolume(newVal);
}; };
Elements.Add(slider_MusicVolume); Elements.Add(slider_MusicVolume);
@ -60,9 +62,10 @@ public class OptionsGUI : AbstractGUI
var slider_EffectsVolume = new Slider(Manager) 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 }; { 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) => slider_EffectsVolume.SliderChanged += (newVal) =>
{ {
AppManager.Instance.SettingsManager.SetSoundEffectsVolume(newVal);
}; };
Elements.Add(slider_EffectsVolume); Elements.Add(slider_EffectsVolume);
@ -80,9 +83,10 @@ public class OptionsGUI : AbstractGUI
Elements.Add(label_IsFullScreen); 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) }; 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) => button_FullScreen.Checked += (newCheckState) =>
{ {
AppManager.Instance.SettingsManager.SetIsFullScreen(newCheckState);
}; };
Elements.Add(button_FullScreen); Elements.Add(button_FullScreen);

View file

@ -36,6 +36,8 @@ namespace ZoFo.GameCore.GameManagers
public InputManager InputManager; public InputManager InputManager;
public ItemManager.ItemManager ItemManager; public ItemManager.ItemManager ItemManager;
public SettingsManager SettingsManager;
public SoundManager SoundManager;
public AnimationBuilder animationBuilder { get; set; } public AnimationBuilder animationBuilder { get; set; }
@ -53,8 +55,11 @@ namespace ZoFo.GameCore.GameManagers
Instance = this; Instance = this;
InputManager = new InputManager(); InputManager = new InputManager();
SettingsManager = new SettingsManager();
SettingsManager.LoadSettings();
SoundManager = new SoundManager();
SoundManager.LoadSounds();
currentGUI = new MainMenuGUI(); currentGUI = new MainMenuGUI();
debugHud = new DebugHUD(); debugHud = new DebugHUD();

View file

@ -20,12 +20,12 @@ namespace ZoFo.GameCore.GameManagers
public void LoadSounds() // метод для загрузки звуков из папки 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) 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) foreach (var soundFile in soundFiles)
{ {
Sounds.Add(soundFile, AppManager.Instance.Content.Load<SoundEffect>("sounds//" + soundFile)); Sounds.Add(soundFile, AppManager.Instance.Content.Load<SoundEffect>("sounds//" + soundFile));
@ -42,7 +42,7 @@ namespace ZoFo.GameCore.GameManagers
public void StartAmbientSound(string soundName) // запустить звук у которого нет позиции public void StartAmbientSound(string soundName) // запустить звук у которого нет позиции
{ {
var sound = new Sound(Sounds[soundName].CreateInstance(), Vector2.One, true); 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.IsLooped = false;
sound.SoundEffect.Play(); sound.SoundEffect.Play();
@ -57,7 +57,7 @@ namespace ZoFo.GameCore.GameManagers
{ {
var sound = new Sound(Sounds[soundName].CreateInstance(), soundPos, false) { baseVolume = baseVolume, basePich = pitch }; var sound = new Sound(Sounds[soundName].CreateInstance(), soundPos, false) { baseVolume = baseVolume, basePich = pitch };
sound.SoundEffect.IsLooped = false; 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.Pitch = pitch;
sound.SoundEffect.Play(); sound.SoundEffect.Play();
PlayingSounds.Add(sound); PlayingSounds.Add(sound);
@ -78,7 +78,7 @@ namespace ZoFo.GameCore.GameManagers
{ {
for (int i = 0; i < PlayingSounds.Count; i++) 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) if (PlayingSounds[i].SoundEffect.State == SoundState.Stopped)
{ {
PlayingSounds.Remove(PlayingSounds[i]); PlayingSounds.Remove(PlayingSounds[i]);
@ -114,14 +114,14 @@ namespace ZoFo.GameCore.GameManagers
SoundEffect = soundEffect; SoundEffect = soundEffect;
Position = position; Position = position;
} }
/*/public void UpdateVolume(Vector2 playerPos) public void UpdateVolume(Vector2 playerPos)
{ {
if (isAmbient) if (isAmbient)
SoundEffect.Volume = baseVolume * AppManager.Instance.SettingsManager.MusicVolume * AppManager.Instance.SettingsManager.MainVolume; SoundEffect.Volume = baseVolume * AppManager.Instance.SettingsManager.MusicVolume * AppManager.Instance.SettingsManager.MainVolume;
else else
SoundEffect.Volume = baseVolume * AppManager.Instance.SettingsManager.SoundEffectsVolume * AppManager.Instance.SettingsManager.MainVolume;// * (float)Math.Clamp(1 - GetDistanceVol(playerPos),0,1); SoundEffect.Volume = baseVolume * AppManager.Instance.SettingsManager.SoundEffectsVolume * AppManager.Instance.SettingsManager.MainVolume;// * (float)Math.Clamp(1 - GetDistanceVol(playerPos),0,1);
}/*/ }
public double GetDistanceVol(Vector2 playerPos) // получение дистанции до объедка от игрока public double GetDistanceVol(Vector2 playerPos) // получение дистанции до объедка от игрока
{ {

View file

@ -32,6 +32,7 @@
<ProjectReference Include="..\MonogameLibrary\MonogameLibrary.csproj" /> <ProjectReference Include="..\MonogameLibrary\MonogameLibrary.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Content\sounds\Zombie\" />
<Folder Include="Content\Textures\GUI\" /> <Folder Include="Content\Textures\GUI\" />
</ItemGroup> </ItemGroup>
<Target Name="RestoreDotnetTools" BeforeTargets="Restore"> <Target Name="RestoreDotnetTools" BeforeTargets="Restore">