Программирование простой игры в DirectX
Файлы к лабораторной работе Вы можете скачать здесь.
В настоящей лабораторной работе мы используем средства управляемого DirectX и построим простую игру. Для любого коммерческого варианта игры нужно вначале построить подробный план, в котором тщательно продумать все существенные детали и игру в целом. Обычно для этого применяется язык диаграмм UML. Но наша игра простая и цели наши другие.
Программу построим из трех основных классов:
- Основной класс формы - DodgerGame (движок игры)
- Класс управления автомобилем - Car
- Класс управления препятствиями - Obstacle
Создание заготовки приложения
- Выберите каталог для размещения проекта и командой File/New/Project создайте новый пустой проект C# с именем Dodger
- Выполните команду меню Project/Add Reference и добавьте к проекту ссылки на следующие библиотечные сборки
Примечание. В трех последних сборках выбирайте версии в соответствии с рисунком
- Командой меню Project/Add New Item добавьте к проекту класс DodgerGame, который будет играть роль движка нашей игры
- Удалите из проекта автоматически сгенерированные при добавлении класса ненужные ссылки на библиотечные сборки
- Добавьте в начало файла DodgerGame.cs соответствующие using -директивы
using System; using System.Drawing; using System.Windows.Forms; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D;Листинг 17.1. Добавление using-директив в файле DodgerGame.cs
- Сделайте класс DodgerGame наследником библиотечного класса Form (отметьте, что пиктограмма класса в панели Solution Explorer сразу изменилась) и пропишите конструктор класса DodgerGame следующим образом
public class DodgerGame : Form { public DodgerGame() { this.Size = new Size(800, 600); // Размер окна формы this.Text = "Lab37. Игра Dodger"; // Заголовок окна } }Листинг 17.2. Конструктор класса DodgerGame
- Добавьте в проект командой Project/Add New Item новый класс с именем AppEntry, в котором разместите точку входа приложения
- Отредактированный класс должен быть таким
namespace Dodger { public class AppEntry { static void Main() { using (DodgerGame frm = new DodgerGame()) { System.Windows.Forms.Application.Run(frm); } } } }Листинг 17.3. Класс AppEntry с точкой входа приложения
Инструкция using в данном применении заставит сборщик мусора выполниться сразу же после завершения ее работы.
- Установите командой Project/Dodger Properties в окне свойств проекта оконный режим работы приложения
На этом подготовительные операции по созданию заготовки проекта окончены. Теперь приступим к программированию самой игры с использованием классов управляемого DirectX.
Программирование движка игры
Движком игры у нас будет класс DodgerGame. Именно в нем мы будем организовывать отображение сцены и управление игрой. Визуально этот класс представлен окном формы, поскольку наследует базовый класс Form.