Хонич А.
Как самому создать трехмерную игру
стр. 136

объектов с опускающимися потолками, которые опускаются с целью раздавить все, что под ними находится.

-1, func, korX, korY, korZ - это начальная часть стру ктуры THING (смотрите пункт 7.1.5.). Зачем это нужно? Почему' бы, в таком случае, ие воспроизвести здесь целиком структуру THING? Отвечаю последовательно на оба вопроса: во-первых, адрес этой части передается в функцию FXSound. Формат вызова этой функции такой:

Зачем тут нужен указатель на объект obj? Это очень просто, obj - это источник звука, у которого имеются координаты X и Y. (координата Z нам не нужна). По этим координатам можно определить положение этого источника относительно игрока (справа, слева). В звуковой функции это положение используется для обеспечения стереоэффекта. Например, если объект находится правее игрока, то звук будет исходить из правого динамика. При этом глубина стереоэффекта зависит от угла зрения игрока иа объект. Максимальная глубина (разнос между каналами) обеспечивается при углах 90 градусов (для правого уха) и 180 градусов (для левого уха). Но июрдкнаты объекта используются не только для стереоэффекта. Пожалуй, основное их предназначение - определение расстояния до игрока. Чем дальше находится объект от игрока, тем меньше громюсть зву чания для этого игрока. При этом, если объект слишком далеко, то редукция звука настолько велика, что его не слышно. Как вы поняли, для функции FXSound в структуре THING важны только два параметра: korX и korY.

Ответ на второй вопрос непосредственно вытекает из ответа на первый вопрос. Если в структуре THING нас интересуют только два параметра, которые находятся почти в самом начале стру ктуры, то зачем городить целиком структуру THING внутри структуры SECTORS? Это было бы неоправданным расточительством памяти. Поэтому мы используем только часть структуры THING.

У вас наверняка “вертится на языке” вопрос: а зачем нам вообще тут нужен звук, да еще и с обеспечением стереоэффекта и регулировкой громкости в зависимости от дальности. Объясняю: это необходимо для озвучивания подвижных секторов, к которым относятся двери, платформы, лифты, лестницы и другое. Ведь известно, что, иапрнмер в DOOM’e все двери являются секторами. У этих узких секторов может опускаться или подниматься потолок. В этом и заключается эффект закрывания и открывания дверей. То же самое относится и к другим перечисленным объектам. Для каждого из секторов вычисляются параметры korX и korY как середина этого сектора. При этом, например, озвучание открывания двери для сектора sec (сектор двери) будет выглядеть так:


Новости
В 2018 году выйдет игра о затонувшей подлодке «Курск»
Польская студия Jujubee после двух лет работы над компьютерной игрой о гибели подводной лодки «Курск», затонувшей в 2000 году, объявила, что завершит проект в 2018 году.
Подтвердились слухи о разработке Resident Evil 2 Remake
Сотрудники компании Capcom тоже активно подливали масла в огонь, заявляя о том, что ремастеринг уже находится в разработке и скоро увидит свет.