hge 的一些笔记

本文介绍HGE游戏引擎的基础使用方法,包括初始化设置、绘制函数、逻辑函数等关键部分的实现细节。通过一个简单的示例程序,展示了如何加载资源、播放声音及显示精灵。
hge指针
HGE *hge=0;//创建一个指向hge类的指针。

绘制函数
bool RenderFunc()//绘制函数,程序开始后HGE将不停调用它 
{
	hge->Gfx_BeginScene();//开始画面 
	hge->Gfx_Clear(0);//给背景涂色0 
	hge->Gfx_EndScene();//结束 
	return false;//程序正常时总是返回false,返回true将从System_Start往下执行 
}

逻辑函数
bool FrameFunc()//逻辑函数,程序开始后HGE将不停调用它,一些逻辑判断或者处理可以写在这里。
{
	return false;//总是返回false 
}

程序入口
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)//WinMain函数,程序的入口。
{
	hge=hgeCreate(HGE_VERSION);//使用hgeCreate函数创建HGE接口,参数必须传递正确的HGE_VERSION,它是在hge.h中定义的
	hge->System_SetState(HGE_SHOWSPLASH,false);//取消欢迎动画 
	hge->System_SetState(HGE_SCREENWIDTH, 800);//将屏幕宽度设置为800 
	hge->System_SetState(HGE_SCREENHEIGHT,600);//将屏幕高度设置为600 
	hge->System_SetState(HGE_SCREENBPP, 32);//
	hge->System_SetState(HGE_LOGFILE, "hge_tut02.log");//设置日志文件
	hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);//设置逻辑函数为FrameFunc函数 
	hge->System_SetState(HGE_RENDERFUNC,RenderFunc);//设置绘制函数为RenderFunc函数
	hge->System_SetState(HGE_TITLE, "我的第一个HGE程序");//设置窗口标题为“我的第一个HGE程序” 
	hge->System_SetState(HGE_WINDOWED,true);//设置使用窗口模式
	hge->System_SetState(HGE_USESOUND,false);//设置不使用声音
	hge->System_SetState(HGE_HIDEMOUSE, false);//是否隐藏鼠标
	
	if(hge->System_Initiate())//用hge类的System_Initiate()方法,检测初始化是否有错误出现
	{
		// Load sound and texture
		snd=hge->Effect_Load("menu.wav");//加载声音文件 
		quad.tex=hge->Texture_Load("particles.png");//加载图片 
		if(!snd || !quad.tex)//判断是否加载成功,若失败执行
		{
			MessageBoxA(NULL, "Can't load MENU.WAV or PARTICLES.PNG", "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL);//弹出错误信息 
			hge->System_Shutdown();//程序停止
			hge->Release();//释放HGE所占用的内存。
			return 0;
		}
		hge->System_Start();//开始 
		
		hge->Texture_Free(quad.tex);//释放 
		hge->Effect_Free(snd);//释放 
	}
	
	hge->System_Shutdown;//程序停止 
	hge->Release();//释放HGE所占用的内存 
	return 0;
}


精灵
HTEXTURE tex;//定义一个texture(纹理)对象 
hgeSprite *spr;//创建精灵类指针
spr->Render(显示位置X,显示位置Y);//在指定位置显示精灵
tex=hge->Texture_Load("图片路径和后缀,这里是相对目录,vc++2005是debug目录");//根据路径载入图片
if(tex)//检测是否图片成功载入
spr=new hgeSprite(tex,图片的显示起始位置X,起始位置Y,图片宽,图片高);//初始化精灵spr,并且指定tex为它的纹理
hge->Texture_Free(tex);//释放纹理
delete spr;//释放精灵 

声音播放
HEFFECT:用来保存载入的声音的
Effect_Load函数:这是一个有返回值的函数,返回的值便是一个HEFFECT数据,于是,我们可以写:snd=Effect_Load("Source/music.mp3")
Effect_Free函数:释放
Effect_Play函数:这个函数的返回值是一个陌生数据类型,这个数据类型叫做HCHANNEL,暂停,播放,继续,停止
if(hge->Input_GetKeyState(HGEK_A))//检测是否按下了A键
hge->Effect_Play(snd);//如果按下了A键,则播放音乐snd 


其他
SetColor(ARGB(alpha,r,g,b));//颜色设置 
SetHotSpot函数://不仅仅决定了显示坐标相对于图像的位置,同时也决定了旋转时的中心
hge->System_GetErrorMessage()//截获错误

基本功能和翎风的一样。 ------------------------------------------------------------------ [2016.09.30] 更新M2功能 ------------------------------------------------------------------ 1.增加脚本命令:InSafeZone //检测人物是否在安全区 ------------------------------------------------------------------ 2.修改程序防止最新僵尸攻击 3.增加脚本命令:SETRANDOMNO //产生一个随机数字 [@main] #IF #ACT SETRANDOMNO //产生一个随机数字 #SAY : //将显示出产生的随机数 [@@CHECKNO] #IF CHECKRANDOMNO //检测输入的验证码是否正确 #ELSEACT MESSAGEBOX 验证码错误! CLOSE BREAK 4.增加脚本命令:ISONMAP MAP //检测当前人是否在MAP地图上 5.增加脚本命令:DELAYCALL 作用:延时执行同一个NPC脚本中指定的标签内容 格式:DELAYCALL S LABEL 其中S是延时秒数(毫秒),Label是执行的脚本标签 示例:DelayCall 3000 @DELAYCALLTEST --- 3秒后自动跳到@DELAYCALLTEST节执行 6.增加脚本命令:KILLBYMON //是否被怪杀 7.增加脚本命令:KILLBYHUM //是否被人杀 地图增加一参数:KILLFUNC(X) //X可以随意数字 说明: 人物在该地图杀人,将触发QFunction-0.txt的[@KillPlay数字]节 人物在该地图杀怪,将触发QFunction-0.txt的[@KillPlayMon数字]节 注:宝宝杀人杀怪有效(秒杀除外) 8. //杀人的怪物名字 9. //杀人的人物名字 #IF KILLBYMON SENDMSG 5 在:%m(%x:%y)把干掉了! #IF KILLBYHUM SENDMSG 5 在:%m(%x:%y)把干掉了! 10.增加人物S变量:(0~99个) 11.解决地图标记 NoHUMNoMon 有人刷怪不能用的问题! 12.增加NPC命令:REPAIRALL //特修身上所有装备 13.增加数据库(修复神水)设置:3 14 //特修身上所有装备 14.增加脚本命令:ISGROUPMASTER //检测是否组长,加入编组后组长会触发QFunction-0.txt 15.增加挂机泡点功能。 ===================================== OFFLINE S EXP S是时间,单位秒 EXP为每S秒得到的经验值 默认必须在安全区域有效 脚本示意: (******************************************************************) (@@offlinemsg) [@main] 一、点击开始脱机泡点后,可输入一段留言信息给你的朋友。\ \ \ \ [@@offlinemsg] #IF CHECKLEVEL > 0 #ACT OFFLINE 5 500 //每5秒增加500经验 --------------------------------------------------------------------------- 16.;检测是否组长 [@MAIN] #IF ISGROUPMASTER #ACT GroupMoveMap 3 330 330 #elsesay 你不是组长. 加入编组后组长会触发QFunction-0.txt [@GroupCreate] #if #say 加入编组 --------------------------------------------------------------------------- 17.增加脱机泡点功能 18.增加地图标记有人刷怪 [0 比奇] NoHUMNoMon ;有人才开始刷怪 19.增加地图标记禁止仍背包物品 [1 沃玛森林] NOTHROWITEM ;禁止仍背包物品 20.增加地图标记死后不爆背包物品 [2 毒蛇山谷] NODR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值