使用 DirectX 建立簡單的通用 Windows 平台 (UWP) 遊戲
在這系列教學課程中,您將瞭解如何使用 DirectX 和 C++/WinRT,建立基本的通用 Windows 平台 (UWP) 範例遊戲:Simple3DGameDX。 遊戲發生在簡單的第一人稱 3D 射擊場景。
注意
點按連結可下載 Simple3DGameDX 範例遊戲:Direct3D 範例遊戲。 C++/WinRT 原始程式碼位於「cppwinrt
」資料夾。 如需其他 UWP 範例應用程式的詳細資訊,請參閱<適用於 Windows 開發的範例應用程式>。
這些教學課程將涵蓋遊戲的所有重要處理程序,包括:載入藝術和網格等資產、建立主要遊戲迴圈、實作簡單的轉譯管線,以及新增音效和控制項。
此外,我們也會說明 UWP 遊戲的開發技術和考量事項。 我們會著重在重要的UWP DirectX 遊戲開發概念,並針對這些概念提出 Windows 執行階段有哪些需要考量的事項。
目標
瞭解 UWP DirectX 遊戲的基本概念和元件,以及更熟悉如何使用 DirectX 設計 UWP 遊戲。
須知事項
如要使用本教學課程,您需要先熟悉這些主題。
- C++/WinRT。 C++/WinRT 是 Windows API 的標準現代 C++17 語言投影,以標頭檔式的程式庫進行實作,且專為提供您現代 Windows API 第一級存取而設計。
- 基本線性代數和牛頓物理概念。
- 基本圖形程式設計詞彙。
- 基本 Windows 程式設計概念。
- 對 Direct2D 和 Direct3D 11 API 有基本瞭解。
Direct3D UWP 射擊場景範例
Simple3DGameDX 範例遊戲會實作簡單的第一人稱 3D 射擊場景,由玩家向移動目標投球。 擊中每個目標得一組特定分數,玩家共有 6 個關卡可完成,難度會越來越高。 關卡結束時計算分數,球員將會獲得最後的總分。
此範例將示範這些遊戲概念。
- DirectX 11.1 與 Windows 執行階段之間的交互操作
- 第一人稱 3D 視角和相機
- 立體 3D 效果
- 偵測到 3D 物件之間的衝突
- 處理滑鼠、觸控和 Xbox 控制器控制器的玩家輸入
- 音訊混合和播放
- 基本遊戲狀態機器
主題 | 說明 |
---|---|
設定遊戲專案 | 開發遊戲的第一步是在 Microsoft Visual Studio 中設定專案。 特別為遊戲開發工作設定一個專案,之後該專案便可當成範本重複使用。 |
定義遊戲的 UWP 應用程式架構 | 撰寫通用 Windows 平台 (UWP) 遊戲程式碼的第一步是建置架構,讓應用程式物件與 Windows 互動。 |
管理遊戲流程 | 定義高階狀態機器,讓玩家和系統互動。 瞭解 UI 如何與整體遊戲的狀態機器互動,以及如何建立 UWP 遊戲的事件處理常式。 |
定義主要遊戲物件 | 接下來,我們會詳細說明範例遊戲的主要物件,以及該物件實作的規則如何轉譯為與遊戲世界的互動。 |
轉譯架構 I:轉譯簡介 | 瞭解如何開發轉譯管線以顯示圖形。 轉譯簡介。 |
轉譯架構II:遊戲轉譯 | 瞭解如何組合轉譯管線以顯示圖形。 遊戲轉譯, 設定和準備資料。 |
新增使用者介面 | 瞭解如何將 2D 使用者介面重疊新增至 DirectX UWP 遊戲。 |
新增控制項 | 本文的範例遊戲將示範如何在 3D 遊戲中實作移動視角控制項,以及如何開發基本的觸控、滑鼠和遊戲控制器控制項。 |
加入聲音 | 使用 XAudio2 API 開發簡單的音效引擎,以播放遊戲音樂和音效。 |
延伸遊戲範例 | 瞭解如何實作 UWP DirectX 遊戲的 XAML 重疊。 |