首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Monogame SoundEffect崩溃

Monogame SoundEffect崩溃
EN

Stack Overflow用户
提问于 2017-06-25 09:23:15
回答 2查看 119关注 0票数 0

我正在尝试重新编程一些旧的拱门游戏在C#与Monogame引擎。不过,我遇到了一个问题。

由于我的代码可能有点混乱,所以当玩家成功地完成游戏时,我通常不会采取任何措施来重置所有的东西。相反,我只是关闭当前的游戏实例并打开一个新的实例,如:(在Program.cs中)

代码语言:javascript
复制
    if (startgame)
    {
        do
        {
            using (var game = new Game1(level, points, soundOn))
                game.Run();
        } while (continueGame == true);
    }

现在问题来了。在Game1中,我声明并播放各种SoundEffects。第一次运行一切正常,但在Game1-实例中,我的程序在调用System.AccessViolationException ()-Method of a SoundEffect时总是会抛出与SharpDX.XAudio2.dll相关的.Play()-Method。

我试着玩SoundEffectInstances而不是实际的SoundEffects。现在它不再崩溃,而是从第2级开始完全保持沉默。

你知道这个错误的原因是什么吗?我的游戏重新启动循环会导致我不知道的问题吗?

提前谢谢你。

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

EN

回答 2

Stack Overflow用户

发布于 2017-07-02 10:56:32

你知道这个错误的原因是什么吗?我的游戏重新启动循环会导致我不知道的问题吗?

是。别这么做。你正在摧毁整个游戏对象只是为了重置游戏。这是一种非常糟糕的风格,因为它破坏了整个实例和与其相关的一切。如果在其中使用static变量,它们将留在内存中,这可能是您遇到的问题。

如果你想要重置你的游戏,只需编写一个Reset-method为一切,并调用这些。清理和良好的代码是您应该使用的东西,而不是可怕的黑客。

你能显示更多的代码吗,这样就有可能理解,哪里出了问题?

PS:永远不要写像while (continueGame == true)这样的东西,总是喜欢while (continueGame)

票数 0
EN

Stack Overflow用户

发布于 2017-10-05 07:38:39

这个问题有可能是由于SharpDX对媒体文件本身的反应。例如,在作为MP3加载的XNA4.0(与相关SoundEffectInstance一起加载)下工作的SoundEffect文件可能会使MonoGame UWP下的游戏崩溃。(只有一个文件发生在我身上,但在开始崩溃时,我已经开始使用SoundEffectInstance了。)

因此,您是否尝试过重新编码相关的音频文件,例如通过像胆量这样的实用程序?虽然它本身可能无法解决内部问题(音频文件的某些元素破坏了SharpDX),但如果重新编码的文件一开始没有问题元素,那么这对您来说应该是一个有效的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44744970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档