HGE教程翻译(1)

HGE 是一个硬件加速(Hardware accelerated)的 2D 游戏引擎(Game Engine),HGE 是一个富有特性的中间件, 可以用于开发任何类型的 2D 游戏它是一个完全免费的,并且开源的2D游戏引擎,底层采用Direct3D;
HGE 封装性良好,以至于你仅仅需要关系游戏逻辑(Game Logic),而不需要在意 DirectX,Windows 消息循环等。
HGE 架构在 DirectX 8.0 之上,能够跑在大多数的 Windows 系统上。
 

选用 HGE 的理由:

1)专业化 --- 专注于 2D 领域
2)简单化 --- 非常容易使用
3)技术优势 --- 基于 Direct3D API,有较好的性能和特性
4)免费 --- 对于个人或者商业用户都免费,遵循 zlib/libpng license
5)代码高度的一致性 --- 代码是否具有一致性,是衡量代码质量的标准之一(《 Code Reading: The Open Source Perspective》)
体系结构:
HGE 有3个抽象层(layers of abstraction):
1)核心函数(Core Functions)
处于核心的函数和例程(routines),被整个系统所依赖。
2)辅助类(Helper Classes)
游戏对象相关的类,架构于 HGE Core Functions 层之上,辅助用户进行游戏开发。
3)创作工具(Authoring Tools)
用于游戏开发的一组工具。
 
HGE的架构

 

放上来自己翻译的第一系列文章,HGE是一个开源的且免费的2D游戏引擎,官方网站http://hge.relishgames.com/,中文官方论坛http://www.hgechina.com

其实在论坛上已经有人翻译完了这个系列的教程,不过排版和翻译读起来总觉得不尽如人意,就有了自己翻译的打算。

        HGE是用Direct3d来模拟2D,硬件加速,功能强大,具体介绍请看官网和中文论坛。

        本系列共8章,绝对自己翻译,转载请注明出处:http://blog.csdn.net/liujian885邮箱:liujian8856@163.com

Tutorial 01 –最小的 HGE应用程序

首先我们包含hge.h头文件并声明一个变量来存储HGE接口指针:

 

#include <hge.h>
 
HGE *hge = 0;

 

接着我们创建frame function。这是个用户定义的功能,每帧都会执行一次,这里将放置你的游戏循环代码。如果frame function返回trueHGE会停止游戏执行。

在这个例子中我们只是检查ESC键是否被按下。

bool FrameFunc()
{
  if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true;
  return false;
}

WinMain函数是个标准的应用程序入口。这里我们会获得HGE接口的指针来访问HGE的函数。在这个例子中我们使用全局的HGE的接口指针。你可以用hgeCreate函数当你要访问HGE时,要确保对每个hgeCreate调用相应的Release函数。

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
  hge = hgeCreate(HGE_VERSION);

接着我们设置一些HGE的内部状态来配置环境。虽然大多系统状态都有适当的默认值,至少HGE_FRAMEFUNC应该设置在System_Start前调用。

  hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);
  hge->System_SetState(HGE_WINDOWED, true);
  hge->System_SetState(HGE_USESOUND, false);
  hge->System_SetState(HGE_TITLE,
                 "HGE Tutorial 01 - Minimal HGE application");

现在我们开始初始化HGE。如果有错误,System_Initiate会返回falseSystem_GetErrorMessage中可以读到的细节描述。
HGE初始化后,通过System_Start函数我们开始游戏循环。程序直到frame function返回true时结束。

  if(hge->System_Initiate())
  {
    hge->System_Start();
  }
  else
  {  
    MessageBox(NULL, hge->System_GetErrorMessage(), "Error",
               MB_OK | MB_ICONERROR | MB_APPLMODAL);
  }

当按下ESC键或用户关闭窗口时,我们应该恢复视频模式并释放分配的资源。当然我们要释放HGE接口。

  hge->System_Shutdown();
  hge->Release();
 
  return 0;
}

看!只是20行代码我们就完成所有功能并且启动游戏环境!

转载: 点击打开链接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基本功能和翎风的一样。 ------------------------------------------------------------------ [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、付费专栏及课程。

余额充值