使用 DirectX 创建简单的通用 Windows 平台(UWP)游戏

在此教程集中,你将学习如何使用 DirectX 和 C++/WinRT 创建名为 Simple3DGameDX 的基本通用 Windows 平台 (UWP) 示例游戏。 游戏玩法在简单的第一人称 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 控制器控件的玩家输入
  • 音频混合和播放
  • 基本游戏状态机

操作中的示例游戏

主题 说明
设置游戏项目 开发游戏的第一步是在 Microsoft Visual Studio 中设置一个项目。 为游戏开发专门配置项目后,可以在以后将其重新用作模板类型。
定义游戏的 UWP 应用框架 为通用 Windows 平台 (UWP) 游戏进行编码的第一步是生成使应用对象与 Windows 交互的框架。
游戏流管理 定义高级状态机以启用玩家和系统交互。 了解 UI 如何与整个游戏的状态机交互,以及如何为 UWP 游戏创建事件处理程序。
定义主游戏对象 现在,我们将了解示例游戏主对象的详细信息,以及如何将其实现的规则转换为与游戏世界的交互。
呈现框架 I:呈现简介 了解如何开发显示图形的呈现管道。 呈现简介。
呈现框架 II:游戏呈现 了解如何组合呈现管道以显示图形。 游戏呈现、设置和准备数据。
添加用户界面 了解如何向 DirectX UWP 游戏添加 2D 用户界面覆盖。
添加控件 现在,我们了解该示例游戏如何在 3D 游戏中实现移动观看控件,以及如何开发基本的触摸、鼠标和游戏控制器控件。
添加声音 使用 XAudio2 API 开发一个简单的声音引擎,以播放游戏音乐和声音效果。
扩展示例游戏 了解如何为 UWP DirectX 游戏实现 XAML 覆盖。