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

Упрощение инициализации программы

Первое, что нужно улучшить в платформе, - это метод ее инициализации. У Direct3D есть огромное количество переменных состояния, которые можно проинициализировать. Дабы не отвлекаться от вопросов моделирования физики, мы просто игнорировали большую часть этих переменных. Это не имело никаких неприятных последствий, поскольку Direct3D инициализирует их разумными значениями по умолчанию. Это удобно при написании программ, поскольку упрощает их.

Накопив опыт работы с Direct3D и другими компонентами DirectX, вы, вероятно, захотите более тонко настраивать их при инициализации. Кроме того, вы, вероятно, пожелаете использовать собственные параметры инициализации окон.

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

1.    Добавить новый элемент данных в структуру d3d_init_j?a-rams.

2.    Добавить новый элемент данных в класс d3d_app.

3.    Добавить код для инициализации нового элемента данных в конструктор класса d3d_app.

4.    Добавить в функцию d3d_app: :InitApp() код, копирующий значение элемента данных структуры d3d_init_params в новый элемент данных класса d3d_app.

5.    Добавить в функцию d3d_app: : InitD3D () код, использующий новый элемент данных класса d3d_app.

Этот процесс можно заметно упростить. Сначала перепишем класс d3d_app так, чтобы он не содержал отдельных элементов для каждого параметра инициализации Direct3D и каждого параметра инициализации окна. Новая версия определения класса d3d_app приведена в листинге 14.1.



Новости
Вышел новый тизер Project Melies от разработчиков Layers of Fear
Bloober Team и Gun Media представили новый тизер хоррора Project Melies, посвящённого немому кино.
В популярной игре спрятали кошелек с деньгами
Как написал Криси в своем блоге на Hackernoon, пароль от кошелька был разделен на две части и спрятан на две разные планеты виртуальной вселенной No Man’s Sky.