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

Этот пример класса игры использует прямое наследование от класса game. Если вы хотите увидеть реализации функций класса my_game, посмотрите их в файле FloatTest. срр в папке \Source\Chapterl4\Ne-wFloat на компакт-диске, прилагающемся к книге. Программа в этой папке - это версия программы из главы 13 «Вода и волны», использующая новую версию платформы физического моделирования.

Обратите внимание на вызов макроса CREATE_GAME_OB JECT () в строке 21 листинга 14.6. Этому макросу в качестве параметра передается имя класса, производного от класса game из платформы. В данном примере -это класс my_game.

На самом деле макрос CREATE_GAME_OBJECT {) создает в программе функцию CreateGameObject(). Платформа автоматически вызывает эту функцию, чтобы выделить память под объект вашего класса игры. В данном примере память выделяется под объект класса my_game. Кроме того, она записывает в указатель в объекте класса d3d_app адрес, по которому расположен в памяти объект класса игры.

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

При компиляции и компоновке игры, использующей платформу физического моделирования, могут появиться сообщения о том, что компоновщик не может найти функцию CreateGameObject (). Это значит, что вы не вызвали макрос CREATE_GAME_OBJECT () ни в одном из файлов программы.

Класс my_game из листинга 14.6 содержит данные игры. Поскольку все служебные функции игры теперь являются методами класса ту_ дате, они могут напрямую обращаться к внутренним данным игры.

Все это означает, что при написании игр, использующих платформу, нужно сделать следующее:

1.    Создать класс, производный от pmframework: :game.

2.    Написать в этом классе код требуемых функций.

3.    Вызвать макрос CREATE GAME OBJECT().

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

Замечание

Эти действия выполнены в файле FloatTest.срр из папки \Sour-ce\Chapter!4 \NewFloat на компакт-диске, прилагающемся к книге.

Эффективное задание матриц преобразований

Во всех программах, рассмотренных ранее в книге, выполнялось большое количество ненужных операций - матрицы отображения и проецирования в них обновлялись при рендеринге каждого кадра. Давайте избавимся от



Новости
Антивирусы и облачные сервисы портят сохранения Dark Souls Remastered
Вчера комьюнити-менеджер Bandai Namco под ником Izmar подтвердил проблему в Steam, посоветовав ограничить доступ антивирусов и других программ вроде облачных сервисов Google и Amazon к файлам ремастера Dark Souls.
Facebook анонсировала новую игровую платформу с интерактивными видео
«Facebook анонсировала несколько новых функций видеотрансляций, которые позволят пользователям сделать свои прямые трансляции похожими на игры с опросами и викторинами», — отмечает The Verge.