2

遵循了一些教程,但我没有运气,我正在尝试使用免费样本将简单的 .WAV 音效添加到 XNA 中,我将声音命名为:

SoundEffect hit1;
SoundEffect hit2;

然后加载内容:

hit1= content.load<SoundEffect>("hit1")

但是当谈到将播放添加到按钮按下时,我去测试它根本没有声音,甚至没有错误或没有游戏加载并且可以播放,但任何声音效果都不起作用。

** // Sounds

        SoundEffect hit1;
        SoundEffect hit2;

这是我的变量名:

// Sounds

            hit1 = Content.Load<SoundEffect>("hit1");
            hit2 = Content.Load<SoundEffect>("hit2");

这就是我在 loadcontent 方法中加载它们的方式:

//If Keyboard Key W is Pressed or Buttong Y
                if (keys1.IsKeyDown(Keys.W) && oldKeys1.IsKeyUp(Keys.W)
                    || (oldpad1.Buttons.Y == ButtonState.Released) && (pad1.Buttons.Y == ButtonState.Pressed))
                {
                    secondsPassed = 0;
                    // IF The Target Image is a Gnome 
                    if (targets[0] == sprites[0])
                    {
                        //They whacked a gnome
                        GnomeHits = GnomeHits + 1;
                        runNum = 0;
                        secondsPassed = 0;
                        hit1.Play();

                    }
                    else
                    {
                        //They whacked a troll
                        scoreNum = scoreNum + 1;
                        runNum = runNum + 1;
                        GnomeHits = 0;
                        secondsPassed = 0;
                        hit2.Play();
                    }
                    SetUpSpriteLoop();

当我按下 F5 并在我按下键或按钮时运行游戏时,这也是我试图分配声音的控制按钮之一,根本没有声音。

4

2 回答 2

0

我在 Windows 10 机器上遇到了与 Monogame(由 XNA 的灰烬构建)类似的问题。我通过重新安装 DirectX 来修复它,一切正常。

于 2018-06-01T10:52:46.373 回答
-1

我的第一个建议是确保您正在更新键盘按键。我只是这么说,因为我看不到您在代码中这样做。如果您不这样做,那么键状态将不会更新,因此您将永远不会输入 if 语句。

一旦你确定你正在输入 if 语句,我会调整音效的音量以确保它实际上是可听见的。我可能有点偏离基础,但是如果我建议遵循本教程,rbwhitaker 是 XNA 的一个很好的资源。

于 2013-01-09T01:32:49.800 回答