[原创+连载]一步一步做拼图游戏,C++版(六)

来源:互联网 发布:软件系统结构图 编辑:程序博客网 时间:2024/04/28 21:54

添加声音

声音是听觉部分,而且为了将来用起来更方便,或者说修改的时候更方便,我们还是要新建一个类,叫

代码量不大。

PlaySound我们主要是用它来播放背景音乐,就是这句,里面的参数稍微解释一下,第一个是文件名,第二个是指向应用程序模块的指针,一般的都是,第三个是播放选项,我用的3异步播放就是指我可以边播放这个,边做其他事,相当于背景音乐,从执行上看,就是这个在播放,我的程序还会继续往下执行,如果这个指定的是的话,为同步播放,就是程序会卡在这里,直到声音播放完后再往下执行。

PlaySoundOK感觉上,再用一次了,但是,只能同时播放一个声音文件,再一次用PlaySoundSND_NOSTOPSND_NOSTOP所以,我在这里采用了的方法。这个稍微有一点复杂,大家尽量理解,我尽量详细说,因为我所知道的也比较有限。

有两个方法,一个是一个是前面的比较简单,但是无奈的是我试验了半天也不成功……惭愧惭愧……

的用法看这个网址就差不多了

我来说几句的。

->->->这个打开是很标准的打开方法,这里要用到一个变量,用来保存和设置打开的属性。我们的必要工作是设置类型和资源名,就是以下两句

mciOpen.lpstrDeviceType = _T("waveaudio");//wavMP3"mpegvideo"

     mciOpen.lpstrElementName = Filename;

CD然后这样就打开了。下面是他的声明:

Code:
  1. MCIERROR mciSendCommand(   
  2.   
  3.   MCIDEVICEID wIDDevice, //设备的ID,在打开设备时不用该参数   
  4.   
  5.   UINT uMsg, //命令消息   
  6.   
  7.   DWORD fdwCommand, //命令消息的标志   
  8.   
  9.   DWORD dwParam //指向包含命令消息参数的结构   
  10.   
  11.   ); //若成功则返回0,否则返回错误码  

打开之后很重要的是保存设备,因为无论是播放,还是停止,都要用到设备IDm_DeviceID = mciOpen.wDeviceID;//ID


MCI_PLAY_PARMS  mciPlay;是不是很像呢?这个也不难了吧。

都太相似了。

更详细的信息请查看:到这里几乎就结束了,哦,对了,还有一件事。

PuzzleMain.h#include “PuzzleSound.h”,CPuzzleSound的初始化函数里调用播放背景音乐的函数,在单击事件里添加上单击事件的声音,当然了,你还可以再添加一个胜利时的声音,具体在哪添加,就不用我说了吧,看了篇了,多少也应该知道些了吧。

PlaySoundwavmp3了,都用方法。

mci我相信,这个游戏不只到此,还有好多可以添加的东西呢。我还会努力的,争取让这个游戏更好。