0

私は Xna でゲームを構築していますが、サウンドエフェクトがループし続けています。サウンドが更新メソッドから再生されているため、非常に明白です。

サウンドは一度に 1 つずつ再生されるわけではありませんが、たとえばタイル 1 という名前のタイルに車が衝突したときのように、一度に 1000 回以上再生されます。

サウンドが一度に 1000 回以上再生されるのを防ぎ、一度に 1 回だけ再生するにはどうすればよいですか?

これは、効果音を再生するために使用するコードです。

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

crash はサウンドエフェクトの名前です。

前もって感謝します!

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 に答える