现在的位置: 首页 > 综合 > 正文

HGE教程翻译(1)

2012年08月26日 ⁄ 综合 ⁄ 共 1472字 ⁄ 字号 评论关闭

 放上来自己翻译的第一系列文章,是一个2D的开源免费的引擎叫HGE,官方网站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行代码我们就完成所有功能并且启动游戏环境!

抱歉!评论已关闭.