HGE教程翻译(1)
来源:互联网 发布:unity3d就业前景 编辑:程序博客网 时间:2024/06/11 16:22
放上来自己翻译的第一系列文章,是一个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返回true,HGE会停止游戏执行。
在这个例子中我们只是检查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会返回false和System_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行代码我们就完成所有功能并且启动游戏环境!
- HGE教程翻译(1)
- HGE教程翻译(1)
- HGE教程翻译(2)
- HGE教程翻译(3)
- HGE教程翻译(4)
- HGE教程翻译(5)
- HGE教程翻译(6)
- HGE教程翻译(7)
- HGE教程翻译(8)
- HGE教程翻译(2)
- HGE教程翻译(3)
- HGE教程翻译(4)
- HGE教程翻译(5)
- HGE教程翻译(6)
- HGE教程翻译(7)
- HGE指南1翻译
- HGE指南1翻译
- HGE扩展库Qaf教程粗略翻译
- 3月7日工作日志-zy
- Spring2.5支持OSGI、Aspect和完全基于注解配置
- 地磅称量系统之(59) 接收串口数据(串口控件的属性设置和超级终端的使用)
- 最近移植了Mocrochip的TCP/IP协议到ARM,共享之
- CEventSocket 0.1修正版
- HGE教程翻译(1)
- 页面之间传递参数得几种方法
- petshop4.0设计说明
- Linux 下串口编程
- excel 如何选择特定(倍数)的行
- 多线程 进度条 C# .net
- 项目经理是这样当的
- debug和release的区别
- E文积累_20080308_Clock out