Хонич А.
Как самому создать трехмерную игру
стр. 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 (сектор двери) будет выглядеть так:


Новости
Авторы Hellblade: Senua’s Sacrifice удивлены количеству игроков на ПК
В октябре прошлого года студия Ninja Theory рассказала, что продажи Hellblade: Senua's Sacrifice оказались выше, чем ожидали сами разработчики, а уже через месяц они достигли полумиллиона копий.
Хождение по Аду в Agony отнимет у игроков 12 часов
Напомним, что Agony поступит в продажу на PC, PS4 и Xbox One 29 мая. После релиза игры авторы намерены заняться VR-режимом.