阻止音频文件重复 XNA
Posted
技术标签:
【中文标题】阻止音频文件重复 XNA【英文标题】:Stop an audiofile from repeating XNA 【发布时间】:2013-12-13 18:21:19 【问题描述】:我的游戏中有声音
private SoundEffect sirenSound;
我有一个模型,它使用碰撞检测来检测它何时与敌方模型发生碰撞。
if (enemySphere.Intersects(playerSphere))
health--;
sirenSound.Play();
这很好用,只是我遇到的问题是,当两个模型发生碰撞时,每帧都会播放歌曲的另一个副本。
我想也许这样的事情会起作用
if(sirenSound.Play() == false)
sirenSound.Play();
但它不起作用,有人知道无需使用计时器的快速解决方法吗?
【问题讨论】:
【参考方案1】:SoundEffect
上的 Play()
方法旨在以即发即弃的方式使用。对于您正在做的事情,您想使用SoundEffectInstance
,如here 所记录的那样。
private SoundEffectInstance sfxInstance;
private SoundEffect sfx;
// ...
if (sfxInstance == null)
sfxInstance = sfx.CreateInstance();
if (sfxInstance != SoundState.Playing)
sfxInstance.Play();
...类似的东西。
【讨论】:
以上是关于阻止音频文件重复 XNA的主要内容,如果未能解决你的问题,请参考以下文章