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

2.    Опросить устройство, чтобы определить, может ли программа выполнить сброс его состояния.

3.    Если сброс можно выполнить, сделать это с помощью функции Reset().

4.    Заново настроить устройство.

5.    Создать или загрузить снова все, что было освобождено в пункте 1.

Я модифицировал платформу так, чтобы она выполняла большую часть этих действий за вас. Теперь в классе game есть два специальных метода. Первый из них - метод RestoreDeviceObjects (). Если вашей игре нужно создавать объекты устройств, поместите код их создания в метод RestoreDeviceObjects (). При начальной инициализации программы вызовите метод RestoreDeviceObjects () из функции Gamelnitialization () . После этого платформа будет автоматически вызывать метод RestoreDeviceObjects (), если ей нужно будет выполнить пункт 5.

Второй новый метод класса game называется InvalidateDeviceOb-jects (). Поместите код освобождения объектов устройств, который нужен вашей игре, в этот метод. При завершении выполнения игры вызовите метод InvalidateDeviceObjects () из функции GameCleanup (). Платформа автоматически вызывает метод InvalidateDeviceObjects (), когда ей нужно выполнить пункт 1.

Если вы используете вертексный буфер, объявленный в классе d3d_app, то функции InvalidateDeviceObjects () не нужно помечать его как потерянный. Платформа сделает это за вас. Однако функции RestoreDeviceObjects () придется восстанавливать вертексный буфер с нуля.

Вот, собственно говоря, и все. Для программ, которые мы будем создавать далее в этой книге, вам не понадобится добавлять много кода в функции RestoreDeviceObjects() и InvalidateDeviceObjects(). Единственный класс в платформе, использующий текстуры - это класс mesh. Но он хранит свои текстуры и данные о материалах в системной памяти, и это гарантирует, что они не будут потеряны. Единственное, что должны делать функции RestoreDeviceObjects () и InvalidateDeviceObjects () в программах из этой книги, — возвращать значение true.

На компакт-диске, поставляющемся с книгой, есть версия программы из главы 13, использующая новую версию платформы. Она находится в папке \Source\Chapterl4\NewFloat2.

Переопределение твердых тел с помощью материальных точек

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



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