首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

以 MFC 建構 DirectX 應用程式框架

     編輯:VC 教學

DirectX SDK 提供 DirectDraw、DirectSound、DirectPlay、Direct3D、DirectInput 五大組件,是 Windows 遊戲開發基石。結合 MFC 類別庫可善用 ClassWizard 訊息對應、ClassView 管理、程式碼重用等優勢。本文示範建立 DirectX 基礎框架步驟。

框架建立步驟

  1. MFC AppWizard 產生對話式專案,取消 About Box。
  2. 刪除對話框類別與資源,改建立 CDirectXWnd (CWnd 衍生) 作為主視窗類別,封裝 DirectDraw 初始化、前景/背景緩衝區建立、虛擬函數供衍生類別覆寫。
  3. 修改 CWinApp::InitInstance:建立 CDirectXWnd、呼叫 InitializeGame(640,480,8)、進入訊息迴圈,PeekMessage 空閒時呼叫 UpdateFrame。
BOOL CDirectXApp::InitInstance() {
    // ... 標準初始化 ...
    CDirectXWnd *pWnd = new CDirectXWnd();
    pWnd->Create("DirectXWnd Test");
    m_pMainWnd = pWnd;
    pWnd->UpdateWindow(); pWnd->SetFocus();
    if (pWnd->InitializeGame(640,480,8) == FALSE) { pWnd->DestroyWindow(); return FALSE; }

    MSG msg;
    while (1) {
        if (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) {
            if (!GetMessage(&msg, NULL, 0, 0)) return msg.wParam;
            TranslateMessage(&msg); DispatchMessage(&msg);
        } else {
            if (pWnd->blsActive) pWnd->UpdateFrame();
        }
    }
    return FALSE;
}

編譯執行可見黑色全螢幕視窗,按 ESC/F12 結束。此框架可進一步擴充為完整遊戲引擎基底,亦可撰寫 Custom AppWizard 重複使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved