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

Векторы в Direct3D

Поскольку векторы очень важны в ЗР-программировании, то вспомогательная библиотека D3DX для Direct3D содержит несколько структур и функций для работы с двумерными, трехмерными и четырехмерными векторами. Хотя в библиотеке физического моделирования есть все, что нам понадобится для работы с векторами, учтите, что с ними можно работать и с помощью Direct3D. Мы будем использовать функции библиотеки Direct3D, работая с ЗБ-графикой, но для физических расчетов мы будем пользоваться только нашей библиотекой физического моделирования. Это позволит нам сделать большую часть кода легко переносимой между разными платформами. Если вы захотите применять для написания игр вместо DirectX что-то другое, вы сможете использовать большую часть кода из этой книги.

Структуры для векторов называются D3DXVECT0R2, D3DXVECTOR3 и D3DXVECTOR4 для двумерных, трехмерных и четырехмерных векторов соответственно. В этих структурах под каждый компонент вектора отведена одна переменная типа float. Чтобы эти структуры можно было использовать в библиотеке моделирования, нам нужна возможность преобразования классов векторов из библиотеки моделирования в структуры векторов из DirectX и обратно. В библиотеке моделирования уже есть функции преобразования из структур D3DXVECTOR2 и D3DXVECTOR3 в объекты классов vector_2d и vector_3d. Это конструкторы классов. Для преобразования объектов классов vector_2d и vector_3d в структуры D3DXVECTOR2 и D3DXVECTOR3 нам понадобятся операторы приведения типов в классах. Код этих операторов приведен в листинге 3.11.

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






Новости
Новый ролик Fallout 76 посвятили совместной работе
Компания Bethesda опубликовала новый ролик Fallout 76, продолжающий серию обучающих видео «Время приключений».
Battle for Azeroth: до 120-го уровня добрались за пять часов
Первый в мире игрок 120-го уровня появился уже через четыре с лишним часа после открытия аддона.