HGE-0 HGE引擎初始化
以下内容翻译自HGE自带的tutorial中的tutorial01.
1 /* 2 ** Haaf’s Game Engine 1.8 3 ** Copyright (C) 2003-2007, Relish Games 4 ** hge.relishgames.com 5 ** 6 ** hge_tut01 – Minimal HGE application 7 */ 8 #include <hge.h> 9 #pragma comment(lib,"hge.lib")
10 HGE *hge = 0; 11 12 // 这个函数作为HGE引擎的回调函数,每帧会被调用一次 13 // 将你的游戏循环代码放在这里. 在这个例子中,我们 14 // 只检查ESC是否被按下. 15 bool FrameFunc() 16 { 17 // 函数返回true则终止循环,返回false则继续循环. 18 if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true; 19 20 // 继续循环 21 return false; 22 } 23 24 int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) 25 { 26 // 这里我们使用前面定义的全局的HGE指针hge. 27 // 通过调用hgeCreate()来获得一个HGE引擎的引用 28 // 当然最后也要使用hge->Release()来释放这个引用 29 hge = hgeCreate(HGE_VERSION); 30 31 // 设置HGE_FRAMEFUNC 32 hge->System_SetState(HGE_FRAMEFUNC, FrameFunc); 33 34 // 设置窗口标题 35 hge->System_SetState(HGE_TITLE, "HGE Tutorial 01 – Minimal HGE application"); 36 37 // 设置窗口模式运行 38 // 默认窗口大小是 800×600 39 hge->System_SetState(HGE_WINDOWED, true); 40 41 // 设置是否使用声音,此处设置为不使用 42 hge->System_SetState(HGE_USESOUND, false); 43 44 // 初始化引擎. 45 // 如果出现错误则函数返回false 46 // 关于错误的更多的信息可以调用System_GetErrorMessage(). 47 if(hge->System_Initiate()) 48 { 49 // 开始执行 FrameFunc(). 50 // 注意:程序将停在这里,不断的执行游戏循环. 51 // 直到FrameFunc()返回true停止游戏循环,然后继续从这里执行下去. 52 hge->System_Start(); 53 } 54 else 55 { 56 // 如果初始化失败,则此处可以进行错误信息的处理 57 MessageBox(NULL, hge->System_GetErrorMessage(), "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL); 58 } 59 60 // 执行到这里的时候说明按下的ESC键,或者用户关闭了窗口,或者引擎初始化错误. 61 // 最后要做一些清理工作. 62 63 // 还原视频模式(vedio mode),清理所有申请的资源 64 hge->System_Shutdown(); 65 66 // 释放HGE引用. 67 // 如果这是最后一个对HGE引擎的引用,那么删除HGE引擎对象. 68 hge->Release(); 69 70 return 0; 71 }

浙公网安备 33010602011771号