2016-10-31 45 views
1

我正在用C++。net编程一个gmae,它就像空间的影响。我开始游戏的形式和它的负载事件中,我创建一个线程应用程序的后台播放音乐。我的线程在程序运行时关闭

问题是,当我按下空格键拍摄时,它也播放声音,并停止主音乐。

我已经有这个问题,但我被告知线程应该解决这个问题。

我创建线程和我的问题的立场。一些帮助将不胜感激。

private: System::Void GameForm_Load(System::Object^ sender, System::EventArgs^ e) 
{ 

    Thread^ newThread = gcnew Thread(gcnew ThreadStart(PlayMusic)); 
    newThread->Name = "MusicaImperio"; 
    newThread->IsBackground = true; 
    if(newThread->IsBackground == true) 
    newThread->Start(); 
    //Sleep(3000); 

} 

这是负载情况下,这是Playmusic方法:

static void PlayMusic() 
{ 
    PlaySound(TEXT("../Musicas/Game.wav"), NULL, SND_ASYNC | SND_LOOP); 
} 
+3

'PlaySound'不适合这个;你只能一次播放一个声音。 – molbdnilo

+0

你能告诉我这样的事情其他功能? – kingwarrior05

+0

我认为你可以使用[DirectSound](https://msdn.microsoft.com/en-us/library/ee416960(v = vs.85).aspx),并且可能还有其他的Windows API。许多人使用图书馆。 (不,我不知道哪一个适合你。) – molbdnilo

回答

0

,如果你试试看能不能在后台运行。

这样做还是没有用?

也许你可以看到会发生什么

相关问题