Шаблоны проектов игр DirectX

Шаблоны DirectX и универсальной платформы Windows (UWP) позволяют быстро создать проект, который послужит отправной точкой для вашей игры.

Предварительные требования

Для создания проекта вам потребуется:

Выбор шаблона

Visual Studio 2015 содержит три шаблона DirectX и UWP:

  • Приложение DirectX 11 (универсальные приложения для Windows) — шаблон приложения DirectX 11 (универсальные приложения для Windows) создает проект UWP, который выполняет обработку с помощью DirectX 11 непосредственно в окне приложения.
  • Приложение DirectX 12 (универсальные приложения для Windows) — шаблон приложения DirectX 12 (универсальные приложения для Windows) создает проект UWP, который выполняет обработку с помощью DirectX 12 непосредственно в окне приложения.
  • Приложение DirectX 11 и XAML (универсальные приложения для Windows) — шаблон приложения DirectX 11 и XAML (универсальные приложения для Windows) создает проект UWP, который выполняет обработку с помощью DirectX 11 внутри элемента управления XAML. Этот шаблон использует SwapChainPanel, поэтому вы можете использовать элементы управления пользовательским интерфейсом XAML. Это облегчает задачу добавления элементов пользовательского интерфейса, но использование шаблона XAML может привести к снижению производительности.

Выбор шаблона зависит от производительности и технологий, которые вы хотите использовать.

Структура шаблона

Универсальные шаблоны DirectX для Windows содержат следующие файлы:

  • pch.h и pch.cpp — поддержка предварительно скомпилированных заголовков.
  • Package.appxmanifest — свойства пакета развертывания для приложения.
  • *.pfx — сертификаты для приложения.
  • Внешние зависимости — ссылки на внешние файлы, которые используются в проекте.
  • *Main.h и *Main.cpp — методы для управления ресурсами приложения, обновления состояния приложения и отрисовки кадра.
  • App.h и App.cpp — главная точка входа для приложения. Соединяет приложение с оболочкой Windows и обрабатывает события жизненного цикла приложения. Эти файлы появляются только в шаблонах приложения DirectX 11 (универсальные приложения для Windows) и приложения DirectX 12 (универсальные приложения для Windows).
  • App.xaml, App.xaml.cpp и App.xaml.h — главная точка входа для приложения. Соединяет приложение с оболочкой Windows и обрабатывает события жизненного цикла приложения. Эти файлы появляются только в шаблоне приложения DirectX 11 и XAML (универсальные приложения для Windows).
  • DirectXPage.xaml, DirectXPage.xaml.cpp и DirectXPage.xaml.h — страница, на которой размещается DirectX SwapChainPanel. Эти файлы появляются только в шаблоне приложения DirectX 11 и XAML (универсальные приложения для Windows).
  • Содержимое
    • Sample3DSceneRenderer.h и Sample3DSceneRenderer.cpp — простой обработчик, который создает экземпляр базового конвейера отрисовки.
    • SampleFpsTextRenderer.h и SampleFpsTextRenderer.cpp — отрисовывает текущее значение кадров в секунду в нижнем правом углу экрана с помощью Direct2D и DirectWrite. Эти файлы появляются только в шаблонах приложения DirectX 11 (Universal Windows) и приложения DirectX 11 и XAML (Universal Windows).
    • SamplePixelShader.hlsl — простой пример построителя текстуры.
    • SampleVertexShader.hlsl — простой пример вершинного построителя текстуры.
    • ShaderStructures.h — структуры, используемые для отправки данных в пример вершинного построителя текстуры.
  • Распространенные
    • StepTimer.h — вспомогательный класс для расчета времени анимации и симуляции.
    • DirectXHelper.h — различные вспомогательные функции.
    • DeviceResources.h и Device Resources.cpp — предоставляет интерфейс для уведомления приложения, имеющего DeviceResources, о потере или создании устройства.
    • d3dx12.h — содержит библиотеку средств D3DX12. Этот файл появляется только в приложении DirectX 12 (Universal Windows).
  • Ресурсы — эмблема и изображение элемента splashscreen, используемых приложением.

Дальнейшие действия

Теперь у вас есть отправная точка; остается добавить к этому знания и навыки разработки игр для Microsoft Store.

Если вы занимаетесь переносом существующей игры, см. следующие статьи.

Сведения о создании новой игры DirectX см. в следующих разделах.