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.youkuaiyun.com/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行代码我们就完成所有功能并且启动游戏环境!

转载: 点击打开链接
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值