【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
    评论
### 回答1: 3k引擎是一款较为古老的游戏引擎,而hge引擎(Hiroshima Game Engine)则是一款采用C++编写的轻量级游戏引擎。如果要将一个基于3k引擎的项目转换为hge引擎,以下是一些基本的教程步骤: 1. 首先,了解hge引擎的基本特性和使用方式。可以参考官方文档和教程以及在线论坛来获取相关信息。 2. 分析3k引擎项目的代码结构和功能。了解项目中使用的主要功能和类,以便在转换过程中进行相应的调整和修改。 3. 在hge引擎中创建一个新项目。根据自己的需求和项目的特性来设置项目的相关参数,例如窗口大小、显示模式等。 4. 将3k引擎项目中的资源文件(例如图片、音频等)复制到hge引擎项目中的相应目录下。确保资源文件的路径和名称在hge引擎中能够正确访问。 5. 逐个转换和调整3k引擎项目的功能和代码。根据hge引擎的语法和功能进行相应的修改,包括更新事件循环、渲染、碰撞检测等相关代码。 6. 调试和测试hge引擎项目。在转换过程中会遇到一些问题和bug,使用调试工具和测试用例来排查和修复这些问题。 7. 最后,将hge引擎项目打包和发布。根据平台的要求和项目的需求来生成可执行文件或者库文件,准备发布给用户使用。 总之,从3k引擎转换到hge引擎需要一定的工作量和代码调整。需要熟悉hge引擎的使用方法和特性,并对原始项目的代码结构和功能有一定的理解和分析能力。只有在转换的过程中不断学习和调试,才能顺利将3k引擎的项目转换到hge引擎上。 ### 回答2: 3K引擎转HGE引擎的教程可以分为以下几个步骤: 1.了解HGE引擎:首先,需要对HGE引擎有一定的了解,包括其概念、功能和特点。可以阅读官方文档或者在线教程,掌握HGE引擎的基本知识。 2.分析3K引擎代码:将3K引擎的代码进行仔细分析,了解其架构、功能模块和代码结构。这样可以更好地理解3K引擎的代码,并为接下来的转换工作做好准备。 3.选择合适的工具:在转换过程中,可以选择一些合适的工具来辅助完成。例如,可以使用代码编辑器来修改和转换代码,使用调试工具来排查错误等。 4.修改代码适配HGE引擎:根据HGE引擎的要求和特性,对3K引擎的代码进行修改和调整,以使其能够适配HGE引擎的规范和接口。可能需要对输入输出、图形渲染、声音播放等方面进行修改。 5.测试和调试:在代码修改完成后,需要进行测试和调试,以确保转换后的代码能够正常运行并达到预期的效果。可以使用HGE引擎提供的调试工具,对代码进行逐行调试,检查和修复可能存在的问题。 6.优化和完善:转换完成后,还可以对代码进行优化和完善。可以使用一些优化技巧来提高游戏的性能和用户体验,包括资源管理、内存优化、算法优化等方面。 总之,将3K引擎转换为HGE引擎需要深入了解两个引擎的特点和代码结构,并进行相应的修改和调整。同时,还需要进行测试和调试,优化和完善代码,确保转换后的游戏能够在HGE引擎上正常运行。 ### 回答3: 转换3k引擎到hge引擎的教程如下: 首先,确保你对3k引擎和hge引擎有一定的了解和使用经验。了解两者的基本概念和结构对于转换工作非常重要。 第一步是了解3k引擎的主要特点和功能。3k引擎是一个开源的2D游戏引擎,它提供了丰富的功能和工具来帮助开发者创建2D游戏。熟悉3k引擎的API和工具将为你转换到hge引擎提供必要的基础知识。 接下来,了解hge引擎的主要特点和功能。hge引擎是一个用于Windows平台的2D游戏引擎,提供了高效的渲染和输入处理功能。了解hge引擎的API和工具是你成功转换的关键。 一旦你对两个引擎都有了一定的了解,你可以开始将你的项目从3k引擎转换到hge引擎。 首先,创建一个新的hge引擎项目。确保你按照hge引擎的项目结构来组织你的代码和资源文件。 接下来,逐个将3k引擎中的功能和代码迁移到hge引擎中。这可能涉及到修改你的代码逻辑、重新组织你的资源文件,以及使用hge引擎的API来实现你之前在3k引擎中使用的功能。 在转换过程中,你可能会遇到一些挑战和问题。这时,你可以参考hge引擎的官方文档和开发者社区来获取帮助和支持。 最后,测试和调试你的转换后的hge引擎项目。确保所有的功能都正常运行,并且没有出现任何错误或异常。 总结起来,将3k引擎转换到hge引擎需要你对两者有一定的了解和熟悉。然后,你需要逐步迁移你的代码和资源文件,并在转换过程中解决可能出现的问题。最后,测试和调试你的转换后的hge引擎项目,确保一切工作正常。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值