From ba271b9eac3177da44af6c6627fdd77490680cf5 Mon Sep 17 00:00:00 2001 From: Hyunwook Ha Date: Fri, 20 Jun 2025 09:12:04 +0900 Subject: [PATCH 1/2] Add index++ to 2D Tutorial's AudioController.Update() --- .../MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../src/17-Scenes/MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../src/24-Shaders/MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../MonoGameLibrary/Audio/AudioController.cs | 4 ++-- .../27-Conclusion/MonoGameLibrary/Audio/AudioController.cs | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/Tutorials/learn-monogame-2d/src/15-Audio-Controller/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/15-Audio-Controller/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/15-Audio-Controller/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/15-Audio-Controller/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/16-Working-With-SpriteFonts/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/16-Working-With-SpriteFonts/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/16-Working-With-SpriteFonts/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/16-Working-With-SpriteFonts/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/17-Scenes/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/17-Scenes/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/17-Scenes/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/17-Scenes/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/18-Texture-Wrapping/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/18-Texture-Wrapping/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/18-Texture-Wrapping/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/18-Texture-Wrapping/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/19-User-Interface-Fundamentals/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/19-User-Interface-Fundamentals/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/19-User-Interface-Fundamentals/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/19-User-Interface-Fundamentals/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/20-Implementing-UI-With-Gum/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/20-Implementing-UI-With-Gum/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/20-Implementing-UI-With-Gum/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/20-Implementing-UI-With-Gum/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/21-Customizing-Gum-UI/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/21-Customizing-Gum-UI/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/21-Customizing-Gum-UI/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/21-Customizing-Gum-UI/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/22-Snake-Game-Mechanics/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/22-Snake-Game-Mechanics/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/22-Snake-Game-Mechanics/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/22-Snake-Game-Mechanics/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/23-Completing-The-Game/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/23-Completing-The-Game/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/23-Completing-The-Game/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/23-Completing-The-Game/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/24-Shaders/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/24-Shaders/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/24-Shaders/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/24-Shaders/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/25-Packaging-Game/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/25-Packaging-Game/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/25-Packaging-Game/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/25-Packaging-Game/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/26-Publish-To-Itch/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/26-Publish-To-Itch/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/26-Publish-To-Itch/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/26-Publish-To-Itch/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } diff --git a/Tutorials/learn-monogame-2d/src/27-Conclusion/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/27-Conclusion/MonoGameLibrary/Audio/AudioController.cs index 1bffd636..7126c8d3 100644 --- a/Tutorials/learn-monogame-2d/src/27-Conclusion/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/27-Conclusion/MonoGameLibrary/Audio/AudioController.cs @@ -109,9 +109,9 @@ public void Update() if (instance.State == SoundState.Stopped && !instance.IsDisposed) { instance.Dispose(); + _activeSoundEffectInstances.RemoveAt(index); } - - _activeSoundEffectInstances.RemoveAt(index); + index++; } } From 9028deb0529bb529ece12f98ca0390b3c60f9271 Mon Sep 17 00:00:00 2001 From: Hyunwook Ha Date: Wed, 25 Jun 2025 11:50:07 +0900 Subject: [PATCH 2/2] Update Code according to https://github.com/MonoGame/docs.monogame.github.io/pull/148 --- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- .../MonoGameLibrary/Audio/AudioController.cs | 18 +++++++++--------- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- .../MonoGameLibrary/Audio/AudioController.cs | 16 ++++++++-------- 13 files changed, 105 insertions(+), 105 deletions(-) diff --git a/Tutorials/learn-monogame-2d/src/15-Audio-Controller/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/15-Audio-Controller/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/15-Audio-Controller/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/15-Audio-Controller/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/16-Working-With-SpriteFonts/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/16-Working-With-SpriteFonts/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/16-Working-With-SpriteFonts/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/16-Working-With-SpriteFonts/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/17-Scenes/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/17-Scenes/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/17-Scenes/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/17-Scenes/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/18-Texture-Wrapping/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/18-Texture-Wrapping/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/18-Texture-Wrapping/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/18-Texture-Wrapping/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/19-User-Interface-Fundamentals/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/19-User-Interface-Fundamentals/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/19-User-Interface-Fundamentals/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/19-User-Interface-Fundamentals/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/20-Implementing-UI-With-Gum/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/20-Implementing-UI-With-Gum/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/20-Implementing-UI-With-Gum/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/20-Implementing-UI-With-Gum/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/21-Customizing-Gum-UI/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/21-Customizing-Gum-UI/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/21-Customizing-Gum-UI/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/21-Customizing-Gum-UI/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/22-Snake-Game-Mechanics/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/22-Snake-Game-Mechanics/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..13ba764c 100644 --- a/Tutorials/learn-monogame-2d/src/22-Snake-Game-Mechanics/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/22-Snake-Game-Mechanics/MonoGameLibrary/Audio/AudioController.cs @@ -97,21 +97,21 @@ public AudioController() /// /// Updates this audio controller - /// + /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/23-Completing-The-Game/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/23-Completing-The-Game/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/23-Completing-The-Game/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/23-Completing-The-Game/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/24-Shaders/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/24-Shaders/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/24-Shaders/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/24-Shaders/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/25-Packaging-Game/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/25-Packaging-Game/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/25-Packaging-Game/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/25-Packaging-Game/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/26-Publish-To-Itch/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/26-Publish-To-Itch/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/26-Publish-To-Itch/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/26-Publish-To-Itch/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } } diff --git a/Tutorials/learn-monogame-2d/src/27-Conclusion/MonoGameLibrary/Audio/AudioController.cs b/Tutorials/learn-monogame-2d/src/27-Conclusion/MonoGameLibrary/Audio/AudioController.cs index 7126c8d3..02a5759b 100644 --- a/Tutorials/learn-monogame-2d/src/27-Conclusion/MonoGameLibrary/Audio/AudioController.cs +++ b/Tutorials/learn-monogame-2d/src/27-Conclusion/MonoGameLibrary/Audio/AudioController.cs @@ -100,18 +100,18 @@ public AudioController() /// public void Update() { - int index = 0; - - while (index < _activeSoundEffectInstances.Count) + for (int i = _activeSoundEffectInstances.Count - 1; i >= 0; i--) { - SoundEffectInstance instance = _activeSoundEffectInstances[index]; + SoundEffectInstance instance = _activeSoundEffectInstances[i]; - if (instance.State == SoundState.Stopped && !instance.IsDisposed) + if (instance.State == SoundState.Stopped) { - instance.Dispose(); - _activeSoundEffectInstances.RemoveAt(index); + if (!instance.IsDisposed) + { + instance.Dispose(); + } + _activeSoundEffectInstances.RemoveAt(i); } - index++; } }