使用 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 编程概念。
- 基本熟悉 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:游戏呈现 | 了解如何组合呈现管道以显示图形。 游戏呈现、设置和准备数据。 |
添加用户界面 | 了解如何向 DirectX UWP 游戏添加 2D 用户界面覆盖。 |
添加控件 | 现在,我们了解该示例游戏如何在 3D 游戏中实现移动观看控件,以及如何开发基本的触摸、鼠标和游戏控制器控件。 |
添加声音 | 使用 XAudio2 API 开发一个简单的声音引擎,以播放游戏音乐和声音效果。 |
扩展示例游戏 | 了解如何为 UWP DirectX 游戏实现 XAML 覆盖。 |