Конгер Д.
Физика для разработчиков компьютерных игр
стр. 441

Полет без моделирования физики

Для написания простейших авиасимуляторов физика не нужна вовсе. Все, что нужно, — это программа, в которой точка, откуда вы видите окружающие объекты, перемещается соответственно передвижению самолета. Добавьте симпатичный окружающий мир и правдоподобное управление - и игра готова. Именно так создавались авиасимуляторы в течение многих лет.

С помощью Direct3D написать такой авиасимулятор чрезвычайно просто. Платформа физического моделирования, описанная в этой книге, еще больше облегчает его написание. В главе 14 «Готовимся создавать игры» мы уже рассматривали программу, в которой камера двигалась над ландшафтом. Можно написать авиасимулятор, взяв эту программу в качестве основы. При этом физика нам не понадобится.

СОЗДАНИЕ ПРОСТОГО АВИАСИМУЛЯТОРА

Чтобы заложить основу для моделирования физических законов, которые мы рассмотрим далее, давайте создадим авиасимулятор, использующий минимум физики. В этом авиасимуляторе используется вид со стороны, то есть игрок будет видеть самолет, которым управляет.

КЛАСС BASIC_FLYER

Первое, что нужно для программы авиасимулятора - класс, описывающий самолеты. Он должен загружать сетчатую модель самолета. Как и машина в программе автосимулятора из предыдущей главы, самолет будет оставаться в центре экрана. Окружающие объекты будут двигаться относительно самолета, создавая впечатление, что самолет разворачивается, кренится и так далее. В листинге 16.1 приведено определение класса basic_flyer.

Замечание

Код класса basic_flyer есть на прилагающемся к книге компакт-диске.

Он находится в файлах FMBasicFlyer .h и PMBasicFlyer. срр в папке Source\Chapter16\BasicFlyer.

Класс basic_flyer является производным от класса rigid_body. Добавленные в нем элементы данных предназначены для выполнения маневров. Они задают начальную ориентацию самолета и его крен, тангаж и рыскание.

Предупреждение

Программа должна задать значения private-элементов данных initialForwardDirection и initialUpDirection после загрузки сетчатой модели, прежде чем начинать выполнять ее преобразования. Класс basic_ flyer должен знать начальную ориентацию сетчатой модели при ее загрузке, чтобы он смог правильно ее ориентировать в полете.



Новости
Авторы Max Payne раскритиковали крупные игры
Глава по коммуникации студии Remedy Томас Пуха заявил, что в нынешних реалиях игрового рынка его команде пришлось реорганизовать производство.
Ubisoft выпустит эксклюзивную фигурку Father’s Calling
Компания Ubisoft сообщила, что коллекционная фигурка Father’s Calling, представляющая собой лидера организации «Врата Эдема» из Far Cry 5, поступит в продажу 22 марта 2018 года по цене 3999 рублей.