我的游戏中有声音
private SoundEffect sirenSound;
我有一个模型,它使用碰撞检测来检测它何时与敌人模型发生碰撞。
if (enemySphere.Intersects(playerSphere))
{
health--;
sirenSound.Play();
}
这个问题很好,只有我遇到的问题是,当两个模型发生碰撞时,每一帧都播放另一首歌曲。
我想也许这样的事情会起作用
if(sirenSound.Play() == false)
sirenSound.Play();
它不起作用,任何人都知道快速解决方法而不必使用计时器?
答案 0 :(得分:3)
Play()
上的SoundEffect
方法旨在以难以忘怀的方式使用。对于您正在做的事情,您希望使用SoundEffectInstance
,如文档here所示。
private SoundEffectInstance sfxInstance;
private SoundEffect sfx;
// ...
if (sfxInstance == null)
sfxInstance = sfx.CreateInstance();
if (sfxInstance != SoundState.Playing)
sfxInstance.Play();
...沿着这些方向发展。