Конгер Д.
Физика для разработчиков компьютерных игр
стр. 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.

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

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



Новости
«Мясной» экшен Redeemer: Enhanced Edition задержится до осени
Издательство «Бука» и студия Sobaka объявили о том, что кровавый экшен Redeemer: Enhanced Edition, ранее запланированный к выходу в августе, был отложен на осень.
Steam-версия Orwell бесплатна до завтра
Игру можно забрать в течение суток, получив ключ для активации в Steam.