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

в массиве, объявленном в начале файла TigerToss. срр. Вот как выглядит объявление этого массива:

#define TOTAL_TIGERS 3 rigid_body allTigers[TOTAL_TIGERS];

Переменная allTigers - это просто массив объектов типа ri-gid_body. Константа TOTAL_T I GERS объявлена, чтобы было проще перебирать объекты в массиве.

В строках 35-36 задаются значения вращательной инерции тигра по осям х, у и z. Я использовал формулы из рисунка 9.9 в главе 9, чтобы вычислить эти значения. Тигр рассматривался как цилиндр массой 100 кг (220 фунтов) и длиной 2 м (6 футов 6 дюймов).

Замечание

Это, вероятно, маловато для взрослого тигра, но эти числа упрощают расчеты по формулам.

В играх приходится анализировать каждое твердое тело и прибегать к упрощениям, чтобы вычислить вращающие моменты. Нужно просто посмотреть на объект и решить, в каких его частях сосредоточена основная часть массы, а затем найти на рисунке 9.9 формы, подходящие для описания этих частей. По формулам для этих форм можно вычислить их моменты, а затем с помощью теоремы Гюйгенса найти общий момент для всего твердого тела.

Задав моменты, функция Gamelnitialization () задает силу, действующую на первого тигра. Это делается в строках 39-47. Затем задаются масса тигра, радиус ограничивающей сферы и коэффициент восстановления. У этого тигра он равен 0.9.

В строке 59 листинга 10.1 вся информация из первого объекта копируется в два других объекта. Это позволяет не инициализировать все одинаковые свойства каждого объекта по отдельности.

В строках 62-73 задаются характеристики второго тигра. Обратите внимание, что второй тигр полностью эластичен - коэффициент восстановления у него равен 1.0.

Характеристики последнего тигра задаются в строках 76-87. У этого тигра коэффициент восстановления равен всего лишь 0.5 - он не слишком упруг по сравнению с двумя другими.

ОБНАРУЖЕНИЕ И ОБРАБОТКА СТОЛКНОВЕНИЙ

В программе Tiger Toss столкновения обрабатываются функциями UpdateFrame () и HandleOverlapping (), расположенными в файле TigerToss. срр. Но прежде чем мы разберемся с этими функциями, посмотрим на некоторые части кода, от которых зависят эти функции (см. листинг 10.2).

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