一次播放多种声音,继续我们离开的地方
Play Multiple Sounds at Once and Continue Where we Left off
在我的程序中,目前我可以播放背景音乐。我的游戏是基于射击游戏的,如果按下按钮,可以说是在播放声音之后播放的声音,它可以播放声音,它继续我们在背景音乐中播放的地方?这是我的代码:
#include <iostream>
#include <Windows.h>
#include <conio.h>
#pragma comment (lib , "winmm.lib") // Used for sound
using namespace std;
// Define key
#define KEY_UP 72
int main()
{
int key = 0;
while(true)
{
PlaySound(TEXT("Background Music.wav"), NULL, SND_FILENAME|SND_ASYNC);
key = _getch();
if (key == KEY_UP)
PlaySound(TEXT("GunSound.wav"), NULL, SND_FILENAME|SND_ASYNC);
}
return 0;
}
如果您希望背景音乐连续播放,则需要使用snd_loop参数。问题在于,在这种模式下,API进入了一种模式,直到使用Null Wave文件名来拨打音乐才能停止。我敢打赌,如果您将背景音乐的声音放在单独的线程上,则可以工作。如果您这样做,那么您的余下循环应该工作。
如果您开始认真对待视频游戏,则无疑是您最好的选择。Codeguru上有很多示例应用程序。
相关文章:
- 循环后如何继续阅读
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 我们可以访问一个不存在的联盟的成员吗
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 当使用透明的std函数对象时,我们还需要写空的尖括号吗
- 我正在尝试使用 c++ 创建一个货币转换程序,我不知道如何继续
- 如何在C++中读取空格分隔的输入 当我们不知道输入的数量时
- 我们可以删除链表中静态内存中的节点吗
- 为什么我们要为avl树实现返回一个指向节点的指针,而不是void函数
- C++:继续创建新的变量可以吗
- 当我们从/tp地址中添加/减去一个整数时会发生什么
- 当我们为(;;) 写作时,它做了什么?for 循环中的双分号有什么作用?
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 当我们进行一些操作时,应该使用什么'std::string'或'std::stringstream'?
- 我们可以将数据永久保存为数据结构吗?
- 为什么我们将单个或多维数组的大小声明为常量值?
- 为什么我们不能重复使用具有不同模板参数的别名模板标识符?
- 为什么当我们有常量引用时创建临时对象?
- 一次播放多种声音,继续我们离开的地方
- 如何保持文件打开并从我们上次离开的地方继续?C++