C# 更新方法的soundEffect保持循环

C# 更新方法的soundEffect保持循环,c#,xna,C#,Xna,我正在用Xna制作一个游戏,我的音效一直在循环,这很明显,因为声音是通过更新方法播放的 这些声音并不是一次播放一个,但就像我的车撞到一块瓷砖(例如:瓷砖1)时,它会一次播放1000多次 如何防止声音一次播放1000次以上,而一次播放1次 这是我用来播放音效的代码: if (map[x][y] == 1) { car.speed = 0; crash.Play(); } crash是soundEffect的名称 提前

我正在用Xna制作一个游戏,我的音效一直在循环,这很明显,因为声音是通过更新方法播放的

这些声音并不是一次播放一个,但就像我的车撞到一块瓷砖(例如:瓷砖1)时,它会一次播放1000多次

如何防止声音一次播放1000次以上,而一次播放1次

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

if (map[x][y] == 1)
        {
            car.speed = 0;
            crash.Play();
        }
crash是soundEffect的名称


提前谢谢

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

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
}

我不得不建议你读一本关于Xact的好教程

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


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

请确保不要将第一行“bool soundplayed=false”放在同一位置,在运行此代码之前,它应该初始化一次。是的,我确实将其放在顶部代码中,只执行一次。但它不起作用。你用什么做音响引擎。是XACT吗?