我制作了一个小应用程序,当您按下键时会播放.wav文件,本质上是试图在键盘上播放音乐,但是当我松开琴键时,扬声器也会发出一些噪音,而且我相信当我按下琴键时也会发出声音。 .wav文件只是一个正弦波,因此我认为这不是问题的根源,没有任何有关导致声音的线索以及任何解决方法?噪音类似于插入耳机或类似装置时产生的瞬时静电。

最佳答案

为了解决此问题,您必须捕获两个KeyboardState。

KeyboardState oldState;
KeyboardState currentState;

public void Load()
{
    oldstate = Keyboard.GetState();
}

public void Update(GameTime gameTime)
{
    currentState = Keyboard.GetState();
    //Example below

    if (oldState.IsKeyUp(Keys.Space)
    && currentState.IsKeyDown(Keys.Space))
    {
       //Play Sound
    }
    oldState = currentState;
}

这将确保所按下的键的旧状态为打开,而新键的状态为按下。这将阻止声音反复播放。然后,在更新循环结束时,它将把currentState设置为oldState并重新开始逻辑。

10-05 22:58