HGE 系列教材(3) --- 初试 HGE

简介: 当 HGE 安装完成之后,就可以使用了,关于 HGE 的安装,可以参考《HGE 系列教材(2) --- 安装 HGE》 现在使用 HGE 开发一个极小的程序: 1. 包含 hge.h 文件,并且定义一个 HGE 的指针,通过这个指针,我们可以访问 HGE Core Functions 层的函数。     #include <hge.h>     HGE *pHge = 0;

当 HGE 安装完成之后,就可以使用了,关于 HGE 的安装,可以参考《HGE 系列教材(2) --- 安装 HGE》

现在使用 HGE 开发一个极小的程序:

1. 包含 hge.h 文件,并且定义一个 HGE 的指针,通过这个指针,我们可以访问 HGE Core Functions 层的函数。

    #include <hge.h>

    HGE *pHge = 0;

使用完 HGE 指针之后,需要释放这个指针,pHGE->Release();

2. 帧函数(Frame Function)是一个用户定义的函数,每一帧时间,它会被 HGE Engine 调用一次,函数返回 true,则调用停止:

    bool FrameFunc()

    {

       if (hge->Input_GetKeyState(HGEK_ESCAPE))

       {

          return true;

       }

       return false;

    }

3. 建立一个 WinMain 函数,WinMain 函数是标准的 Windows 应用程序入口,这里,我们首先初始化 HGE 指针:

    int WINAPI WinMain( HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPSTR lpCmdLine,
                       int nShowCmd)
    {
        pHge = hgeCreate(HGE_VERSION);
        // ...

        pHge->Release();
        return 0;
    }

    通过 HGE 指针,我们才可以访问 HGE Engine 的接口。调用了 hgeCreate 函数之后,不要忘记了使用 Release 函数释放资源。

4. 初始化操作:

有一些初始化操作需要完成,使得程序能够跑起来:

    // 设置帧函数

    pHge->System_SetState(HGE_FRAMEFUNC, FrameFunc);

    // 设置窗口模式
    pHge->System_SetState(HGE_WINDOWED, true);

    // 设置不使用声音
    pHge->System_SetState(HGE_USESOUND, false);

    // 设置标题为 "Minimal HGE"
    pHge->System_SetState(HGE_TITLE, "Minimal HGE");

最后需要调用函数 System_Initiate 来完成初始化操作,这个函数返回值是一个 bool 类型的变量,如果是 true 那么表示初始化成功,如果是 false 表示出错,这时候可以通过 System_GetErrorMessage 函数来获取错误消息:

    if (pHge->System_Initiate())
    {
        pHge->System_Start();
    }
    else
    {
        MessageBox(NULL, pHge->System_GetErrorMessage(), "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL);
    }

再程序结束的时候,需要释放资源:

    pHge->System_Shutdown();
    pHge->Release();

5. 整个完整的程序如下:

#include <hge.h>

HGE* pHge = 0;

bool FrameFunc()
{
    if (pHge->Input_GetKeyState(HGEK_ESCAPE))
    {
        return true;
    }
    return false;
}

int WINAPI WinMain( HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nShowCmd)
{
    pHge = hgeCreate(HGE_VERSION);
    pHge->System_SetState(HGE_FRAMEFUNC, FrameFunc);
    pHge->System_SetState(HGE_WINDOWED, true);
    pHge->System_SetState(HGE_USESOUND, false);
    pHge->System_SetState(HGE_TITLE, "HGE小程序");

    if (pHge->System_Initiate())
    {
        pHge->System_Start();
    }
    else
    {
        MessageBox(NULL, pHge->System_GetErrorMessage(), "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL);
    }

    pHge->System_Shutdown();
    pHge->Release();

    return 0;
}

注意,程序运行之后,一直调用函数 FrameFunc 直到用户按下 ESC,那么跳到 pHge->System_Shutdown() 处执行。

相关文章
|
图形学
[学习][笔记] qt5 从入门到入坟:<12>Graphics View Framework
[学习][笔记] qt5 从入门到入坟:<12>Graphics View Framework
|
编译器
[学习][笔记] qt5 从入门到入坟:<五>布局管理器
[学习][笔记] qt5 从入门到入坟:<五>布局管理器
|
定位技术 图形学
[学习][笔记] qt5 从入门到入坟:<13>基于GraphicsViewFrame的贪吃蛇实现
[学习][笔记] qt5 从入门到入坟:<13>基于GraphicsViewFrame的贪吃蛇实现