2015-12-06 3 views
0

У меня есть игра C# Консоль, над которой я работаю, и мне очень хотелось бы включить в нее какую-то фоновую музыку.Консоль Фоновая музыка

У меня есть функция, которая вызывает SoundPlayer, и у меня есть музыка, как ожидалось. Моя функция будет вызвана некоторыми обстоятельствами моей игры, но когда она называется, я бы хотел, чтобы игра продолжалась. В настоящее время моя игра проходит так, как ожидалось, но как только она попадает в функцию playMusic(), игра останавливается, пока музыка не перестанет играть.

Как сделать музыку в фоновом режиме, не прерывая мой основной игровой цикл? Любые мысли по этому поводу будут очень признательны.

Музыка Функция:

public void playMusic() 
    { 
     SoundPlayer sndPlayer = new SoundPlayer(); 
     sndPlayer.SoundLocation = Environment.CurrentDirectory + "\\Music.Wav";   
     sndPlayer.PlaySync(); 

    } 

My Game Loop:

 int gameoverCount =0; 
     //Main game loop 
     while (gameoverCount != 1000) 
     { 
      //Select a random NPC to move 
      int randomNPC = StaticRandom.Instance.Next(0, npcs.characters.Count); 

      //Checks if the NPC has reached it's destination, if not move. 
      if (npcs.characters[randomNPC].destination) 
      { 
       Movement.npcMove(board, npcs.characters[randomNPC]); 
      }     
      else 
      { 
       //Gives NPC new location 
       npcs.characters[randomNPC].destinationX = StaticRandom.Instance.Next(3, 14); 
       npcs.characters[randomNPC].destinationY = StaticRandom.Instance.Next(3, 14); 
       npcs.characters[randomNPC].destination = true; 
      } 
      gameoverCount++; 
      Movement.playerMove(p1.coordX, p1.coordY, board, p1, p1.bac, p1.stepsTaken, npcs.characters[randomNPC]); 

      //If player is on a certain space, play music 
      if (board.board[p1.coordX, p1.coordY].playMusic) 
      { 
       playMusic(); 
      }     
      Console.Clear(); 
      board.showBoard(); 
     } 

ответ

1

Что вы ищете является Play или метод PlayLooping. Как вы можете видеть в разделе замечаний, оба этих метода будут воспроизводить музыку с использованием нового потока. PlaySync, с другой стороны, использует текущий поток, который является причиной, по которой вы получаете поведение, которое вы получаете.

+0

Большое вам спасибо, я очень благодарен вам за помощь! – user5166162

+0

@ user5166162 Добро пожаловать. – TheWanderingMind

Смежные вопросы