HGE教程翻译(1)

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值