0

我正在 Xna 中构建游戏,我的音效一直在循环播放,这很明显,因为声音是通过更新方法播放的。

声音并不是真的一次播放 1 次,但就像我的车撞到一块名为:tile 1 的瓷砖时,它会一次播放 1000 多次。

如何防止声音一次播放 1000 多次,而让它一次播放 1 次?

这是我用来播放音效的代码:

if (map[x][y] == 1)
        {
            car.speed = 0;
            crash.Play();
        }

crash 是 soundEffect 的名称。

提前致谢!

4

2 回答 2

2

我不得不向您推荐阅读有关 Xact 的好教程

您会认为这种方法比您尝试使用的方法更难,但它会在未来对您更加灵活 :)

MSDN 上的 Xact

或者您可以使用声音中的 pause() 方法。

于 2012-11-22T13:53:45.550 回答
0

如何实现这一目标的快速示例:

bool soundPlayed = false;   //This would be in a INIT method somewhere

if (map[x][y] == 1)
{
    if (!soundPlayed)
    {
        car.speed = 0;
        crash.Play();
        soundPlayed = true;
    }
}
else
{
    soundPlayed = false;    //Reset once condition is false
}
于 2012-11-21T16:27:26.127 回答