0

誰かが私がここで間違っているところを教えてもらえますか? 次のエラー メッセージが表示され続けます。

"ArgumentNullException が処理されませんでした。このメソッドは、このパラメーターに対して null を受け入れません。パラメーター名: song"

私はそれを回避する方法を見つけることができません。

Song BGmusic;
bool songstart = false;

protected override void LoadContent()
{
    currentgamescreen = Gamescreen.menuscreen;

    if (!songstart)
    {
        MediaPlayer.Play(BGmusic);
    }

    BGmusic = Game.Content.Load<Song>("audio/rockTheDragon");
}
4

3 に答える 3

10

MediaPlayer.Play(BGmusic);まだ初期化されていない場所を呼び出すBGmusicので、null になります。

おそらく次のようにします:

protected override void LoadContent()
{
    currentgamescreen = Gamescreen.menuscreen;

    if (!songstart)
    {
        BGmusic = Game.Content.Load<Song>("audio/rockTheDragon");
        MediaPlayer.Play(BGmusic);
    }
 }

問題を解決します。

于 2013-01-25T14:53:34.440 に答える
2

MediaPlayer.Play(BGmusic)に値を代入する前に呼び出していますBGmusic。次のことを試してください。

Song BGmusic;
bool songstart = false;

protected override void LoadContent()
{
    currentgamescreen = Gamescreen.menuscreen;

    BGmusic = Game.Content.Load<Song>("audio/rockTheDragon");

    if (!songstart)
    {
        MediaPlayer.Play(BGmusic);
    }
 }
于 2013-01-25T14:54:26.810 に答える
1

動く

 BGmusic = Game.Content.Load<Song>("audio/rockTheDragon");

そのメソッドの先頭へ

于 2013-01-25T14:54:56.753 に答える