在HGE里添加音频的方法网上很多地方都有写过,HGE的官方例子里也有。但是有了音乐后怎么控制呢?我摸索了下,用的是这种方法:
首先,在全局申明中定义以下三个变量:
HEFFECT backMusic;
HCHANNEL backMusicChannel;
int volume;//音量
然后在主函数WinMain的System_Initiate()之后添加以下语句:
backMusic = hge->Effect_Load("yumantang.mp3");//将电脑中的音频文件关联进来,支持的格式有WAV, MP3, MP2, MP1 和OGG。
backMusicChannel = hge->Effect_PlayEx(backMusic,volume,0,90.0f,true);//开始播放音频,并将声道存在backMusicChannel中以便后续对其进行操作。Effect_PlayEx函数的五个参数分别为音频资源(HEFFECT)、音量(0~100)、左右声道音量分配(-100~100)、播放频率、是否循环等。
hge->Channel_SetVolume(backMusicChannel,volume);//设置音量。虽然上面的函数已经设置了音量,但是这里还是重新设置一下。因为不知道为什么,我发现上面那个函数对音量的控制不是很好。不管我怎么改volume,初始音量貌似都是同一个值。
最后,在FrameFunc()中添加对音量的实时控制语句:
if( (hge->Input_GetKeyState(HGEK_ADD) || hge->Input_GetKeyState(HGEK_EQUALS)) && volume<100 )
{
volume++;
hge->Channel_SetVolume(backMusicChannel,volume);
}
if( (hge->Input_GetKeyState(HGEK_SUBTRACT) || hge->Input_GetKeyState(HGEK_MINUS)) && volume>0 )
{
volume--;
hge->Channel_SetVolume(backMusicChannel,volume);
}
这样,每当用户按小键盘上的+、-,或主键盘上的=、-时音量就会随之改变。