閱讀368 返回首頁    go 阿裏雲 go 技術社區[雲棲]


HGE 係列教材(3) --- 初試 HGE

當 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() 處執行。

最後更新:2017-04-02 06:51:29

  上一篇:go HTTP狀態碼查詢
  下一篇:go 如何將服務端的多個文件打包下載(轉)