【HGE 教程03】简单的游戏声音

所用到函数

(Sound)函数HEFFECT:

Effect_Load 从磁盘或内存中加载一个音效。
Effect_Load("声音路径和后缀,这里是相对目录");//根据路径载入声音

Effect_Free 删除加载的音效和相关资源。
Effect_Free(snd);//释放声音snd

Effect_Play 播放音效。
hge->Effect_Play(snd);//播放音乐snd


注意:把bass.dll同hge.dll放在一起

教程源代码下载地址:点击打开链接

教程图片



代码如下:



/*
** Haaf's Game Engine 1.8
**
** 教程3
*/


#include "hge.h"// 包含hge头文件

#include "hgefont.h"// 包含hgefont头文件

HGE *hge = 0;//创建一个指向hge类的指针。

hgeFont* fnt;//定义字体指针,

//显示图片
hgeSprite *spr;// 创建精灵类指针

HTEXTURE tex;//定义一个 texture(纹理)对象

HEFFECT snd;//定义一个Effect(音效)对象

bool FrameFunc()//逻辑函数,此函数每一帧都会被调用一次,把你的游戏循环的代码在这里。
{	
	
	
	//检测"ESC"键是否被按下,如果返回 "true"  则停止运行程序.	
	if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true;
	if(hge->Input_GetKeyState(HGEK_A))//检测是否按下了A键
	hge->Effect_Play(snd);//如果按下了A键,则播放音乐snd
	
	return false;//程序正常时总是返回false,当你希望程序终止时返回true
}


bool RenderFunc()// 绘制函数,将你的渲染代码放在这里。
{
	//开始渲染图像
	hge->Gfx_BeginScene(); 

	hge->Gfx_Clear(0xFF000000);//以某颜色清屏,OxFF000000为透明度为0的黑色

	spr->Render(0,0);//在指定位置显示精灵

	//设置字体颜色
	fnt->SetColor(0xFF00FFFF);
	//渲染格式化的文本字符串(屏幕X坐标,屏幕Y坐标,排列分类符,文本字符串)
	fnt->printf(0, 0, HGETEXT_LEFT, "tutorials_02");
	
	//结束渲染图像
	hge->Gfx_EndScene();
	//当你希望程序终止时返回true,	//返回true将从 System_Start往下执行
	//否则返回false。	
	return false;

}


int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)//WinMain 函数,程序的入口。
{

	hge = hgeCreate(HGE_VERSION);//创建HGE接口,参数必须为HGE_VERSION

	
	hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);//设置逻辑函数为FrameFunc函数
	
	hge->System_SetState(HGE_RENDERFUNC,RenderFunc);//设置绘制函数为RenderFunc函数
	
	hge->System_SetState(HGE_TITLE, "Hello World!");// 设置窗口标题

	hge->System_SetState(HGE_SCREENWIDTH, 640);//程序窗口宽度
	hge->System_SetState(HGE_SCREENHEIGHT, 480);//程序窗口高度
	hge->System_SetState(HGE_WINDOWED, true);//是否是窗口模式,默认是 800x600
	hge->System_SetState(HGE_USESOUND, true);//使用声音资源

	hge->System_SetState(HGE_SHOWSPLASH, false);//去掉HGE开始的LOGO 
	hge->System_SetState(HGE_HIDEMOUSE,false); //设置鼠标



	if(hge->System_Initiate())//初始化引擎所需的所有软硬件并创建程序窗口。
	{
		
		fnt = new hgeFont("font1.fnt");
		
		snd=hge->Effect_Load("music.wav");//根据路径载入声音

		if(!snd)//检测声音是否已经载入成功
			
			{	
				// 如果下初始化失败显示错误消息
			MessageBox(NULL, hge->System_GetErrorMessage(), "Music Error", MB_OK | MB_ICONERROR | MB_APPLMODAL);
		}
		tex=hge->Texture_Load("bj.png");//根据路径载入图片路径和后缀,这里是相对目录

		if(!tex)//检测是否图片成功载入
		{	
			// 如果下初始化失败显示错误消息
			MessageBox(NULL, hge->System_GetErrorMessage(), "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL);
		}
		//				(tex,图片的显示起始位置X,起始位置Y,图片宽,图片高)
		spr=new hgeSprite(tex,0,0,800,900);//初始化精灵spr,并且指定tex为它的纹理  

		hge->System_Start();//运行FrameFunc().函数. 如果成功则返回true。否则返回false 
	}
	else
	{	
		// 如果下初始化失败显示错误消息
		MessageBox(NULL, hge->System_GetErrorMessage(), "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL);
	}

	hge->Texture_Free(tex);//释放纹理
	hge->Effect_Free(snd);//释放声音资源
	delete spr;//释放精灵

	hge->System_Shutdown(); //复原视频模式,释放所有已分配的资源,并销毁程序窗口。
	//删除资源

	hge->Release();//释放HGE接口并在必要时删除HGE对象。

	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值