開發 Marble Maze:Universal Windows Platform (UWP) 遊戲,使用 C++ for DirectX 建構

本主題說明如何使用 DirectX 和 C++ 來建立 3D Universal Windows Platform (UWP) 遊戲。 遊戲名為 Marble Maze,包含多種外形規格,如平板電腦、傳統桌上型電腦和筆記型電腦。

注意

若要下載 Marble Maze,請參閱 GitHub 上的樣本。

重要

Marble Maze 展示設計模式,我們認為這是製作 UWP 遊戲的最佳實踐。 您可以根據自己的實踐和正在開發的遊戲的獨特要求,調整許多實施細節。 當有更適合您的需求時,您可隨意使用不同的技術或資料庫。 (但是,請務必確保您的程式碼透過 Windows 應用程式認證工具包。)當我們考慮此處使用的實現對於成功的遊戲開發來說是非常關鍵的,我們將在本文件中強調它。

介紹 Marble Maze

我們選擇 Marble Maze,因為它相對簡單,但仍展現大多數遊戲所具備的廣泛功能。 它顯示如何使用圖形、輸入處理和音訊。 它還展示遊戲機制,如規則和目標。

Marble Maze,類似於桌上迷宮遊戲,通常由裝有孔的盒子和鋼或玻璃大理石構成。 Marble Maze 的目標與桌面版本相同:在儘可能短的時間內傾斜迷宮,以引導大理石從迷宮的開始到結束,而不讓大理石掉入任何孔洞。 Marble Maze,加入檢查點的概念。 如果大理石掉入洞中,遊戲會在大理石經過的最後一個檢查點位置重新啟動。

Marble Maze,提供多種使用者與遊戲板互動的方式。 如果您有觸控式或加速計式裝置,可以使用這些裝置來移動遊戲板。 您也可以使用控制器或滑鼠來控制遊戲。

screen shot of the marble maze game.

必要條件

誰應該讀這個?

如果您有興趣為 Windows 10 建立 3D 遊戲或其他需要大量繪圖功能的應用程式,這是為您量身打造的。 我們希望您使用本檔案概述的原則與實務來建立自己的 UWP 遊戲。 背景或對 C++ 和 DirectX 程式設計的濃厚興趣,可協助您充分利用此檔案。 如果您沒有使用 DirectX 的經驗,如果您有使用類似 3D 圖形程式環境的經驗,您仍然可以獲益。

檔案 Walkthrough:使用 DirectX,建立一個簡單的 UWP 遊戲,描述另一個使用 DirectX 和 C++ 實現基本 3D 射擊遊戲的範例。

此說明檔案涵蓋的內容

本檔案教導如何:

此說明檔案未涵蓋的內容

本文件不包括遊戲開發的以下方面。 在這些方面之後,又追加涵蓋它們的資源。

  • 3D 遊戲設計原則。
  • C++ 或 DirectX 程式設計基礎。
  • 如何設計材質、模型或音訊等資源。
  • 如何解決遊戲中的行為或效能問題。
  • 如何準備您的遊戲以供世界其他地區使用。
  • 如何認證遊戲並發佈到 Microsoft Store。

Marble Maze,也使用 DirectX Math 程式庫來處理 3D 幾何並執行物理計算,例如碰撞。 本節未深入介紹 DirectX Math。 如需有關 Marble Maze uses DirectX Math 的詳細資訊,請參閱原始程式碼。

雖然 Marble Maze 提供許多可重用的元件,但它不是一個完整的遊戲開發框架。 當我們認為遊戲中的 Marble Maze 元件可重複使用時,我們會在檔案中強調它。

下一步

我們建議您從 Marble Maze 範例基礎知識開始,瞭解 Marble Maze,以及 Marble Maze 原始程式碼遵循的一些編碼和樣式准則。 下表概述本節中的文件,以便可以更輕鬆地引用它們。

本節內容

標題 描述
Marble Maze 範例基礎觀念 提供遊戲結構概觀,以及原始碼遵循的部分程式碼和樣式准則。
Marble Maze 應用結構 描述 Marble Maze 應用程式程式碼是如何建構的,以及 DirectX UWP 應用程式的結構與傳統桌面應用程式的結構有何不同。
新增視覺內容至 Marble Maze 範例 說明使用 Direct3D 和 Direct2D 時應牢記的一些重要實務。 同時說明 Marble Maze 如何將這些實踐應用於視覺內容。
新增輸入與互動至 Marble Maze 範例 描述 Marble Maze,如何搭配加速計、觸控和遊戲控制器輸入以讓使用者瀏覽選單並與遊戲板互動。 同時說明使用輸入時應記住的一些最佳實務。
在 Marble Maze 範例中加入音訊 描述 Marble Maze,如何搭配音訊來增加遊戲體驗的音樂和音效。