使用 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 程式設計概念。
  • Direct2DDirect3D 11 API 有基本瞭解。

Simple3DGameDX 範例遊戲會實作簡單的第一人稱 3D 射擊場景,由玩家向移動目標投球。 擊中每個目標得一組特定分數,玩家共有 6 個關卡可完成,難度會越來越高。 關卡結束時計算分數,球員將會獲得最後的總分。

此範例將示範這些遊戲概念。

  • DirectX 11.1 與 Windows 執行階段之間的交互操作
  • 第一人稱 3D 視角和相機
  • 立體 3D 效果
  • 偵測到 3D 物件之間的衝突
  • 處理滑鼠、觸控和 Xbox 控制器控制器的玩家輸入
  • 音訊混合和播放
  • 基本遊戲狀態機器

the sample game in action

主題 說明
設定遊戲專案 開發遊戲的第一步是在 Microsoft Visual Studio 中設定專案。 特別為遊戲開發工作設定一個專案,之後該專案便可當成範本重複使用。
定義遊戲的 UWP 應用程式架構 撰寫通用 Windows 平台 (UWP) 遊戲程式碼的第一步是建置架構,讓應用程式物件與 Windows 互動。
管理遊戲流程 定義高階狀態機器,讓玩家和系統互動。 瞭解 UI 如何與整體遊戲的狀態機器互動,以及如何建立 UWP 遊戲的事件處理常式。
定義主要遊戲物件 接下來,我們會詳細說明範例遊戲的主要物件,以及該物件實作的規則如何轉譯為與遊戲世界的互動。
轉譯架構 I:轉譯簡介 瞭解如何開發轉譯管線以顯示圖形。 轉譯簡介。
轉譯架構II:遊戲轉譯 瞭解如何組合轉譯管線以顯示圖形。 遊戲轉譯, 設定和準備資料。
新增使用者介面 瞭解如何將 2D 使用者介面重疊新增至 DirectX UWP 遊戲。
新增控制項 本文的範例遊戲將示範如何在 3D 遊戲中實作移動視角控制項,以及如何開發基本的觸控、滑鼠和遊戲控制器控制項。
加入聲音 使用 XAudio2 API 開發簡單的音效引擎,以播放遊戲音樂和音效。
延伸遊戲範例 瞭解如何實作 UWP DirectX 遊戲的 XAML 重疊。