gpt4 book ai didi

c# - Monogame SoundEffect崩溃

转载 作者:行者123 更新时间:2023-12-03 01:44:27 26 4
gpt4 key购买 nike

我正在尝试使用Monogame引擎对一些旧的Arcade游戏进行C#编程。但是,我遇到了一个问题。

由于我的代码有些混乱,因此当玩家成功完成游戏时,我通常不花力气重置所有内容。相反,我只是关闭当前的Game-instance并打开一个新的实例,如下所示:(在Program.cs中)

    if (startgame)
{
do
{
using (var game = new Game1(level, points, soundOn))
game.Run();
} while (continueGame == true);
}

现在的问题。在Game1中,我声明并播放了各种SoundEffects。第一次运行时一切正常,但是在所有以下Game1实例中,我的程序始终会抛出与 SharpDX.XAudio2.dll 相关的 System.AccessViolationException 。声音效果。

我尝试播放S​​oundEffectInstances而不是实际的SoundEffects。现在它不再崩溃,而是从2级开始完全保持静音。

您知道此错误的原因吗?我的游戏重新启动循环是否引起我不知道的问题?

先感谢您。

(我正在使用Win 7 64位,VS Express 2015和Monogame 3.6)

最佳答案

Do you know what could be the reason of this error? Is my game-restarting loop causing problems I did not know about?



是。不要做。
您正在破坏整个游戏对象,只是为了重置游戏。这是一种非常糟糕的样式,因为它会破坏整个实例以及与其关联的所有内容。如果在其中使用 static变量,它们将保留在内存中,这可能是您遇到的问题。

如果您想重置游戏,只需为所有内容编写一个 Reset -method,然后调用它们即可。您应该使用清理和漂亮的代码来代替可怕的骇客。

您可以显示更多代码,以便了解发生了什么问题吗?

PS:永远不要写像 while (continueGame == true)这样的东西来代替 while (continueGame)

关于c# - Monogame SoundEffect崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44744970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com