最好的重载方法匹配有一些无效的参数?

时间:2013-12-02 15:44:03

标签: c# xna

我正在尝试在我的游戏中循环播放背景音乐但是在更新函数中放入if语句时会收到上述错误:

if (!songStart)
{
    MediaPlayer.Play(backgroundMusic); // error occuring here
    songStart = true;
}

当我把它放入加载内容时,错误消失了但是我在更新中需要它,以便它不断检查歌曲是否没有播放(!songstart)

我目前在加载内容中加载了这首歌:

Song backgroundMusic = Content.Load<Song>("backgroundMusic");
MediaPlayer.IsRepeating = true;

编辑:刚刚注意到我也遇到了以下错误,这可能与它有关吗?

'无法将'Microsoft.Xna.Framework.Audio.SoundEffect'转换为'Microsoft.Xna.Framework.Media.SongCollection'

感谢。

1 个答案:

答案 0 :(得分:0)

我认为您不需要那个bool来检查音频是否已播放,您可以使用:

if(MediaPlayer.State != MediaState.Playing)

对于您的错误,您可能有两个名为backgroundMusic的变量,我认为您的类变量是SoundEffect(正如我在上一个问题中所读到的那样),并且您有一个{{1在Song中声明的具有相同名称的变量。你应该删除第一个。