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

столбца i в текстуре NumText.

Служит этот массив, как мы видели выше, для выделения памяти для комбинированной текстуры.

-    HeightTexture - одномерный массив из N чисел типа FixedPoint:

HeightTexture = zmalloc(N*sizeof(int *), NULL, 1);

FixedPoint - это фиксированная точка, которая от int практически не отличается и определяется:

typedef FixedPoint int;

Каждый элемент в массиве HeightTexture для конкретной текстуры представляет собой общую высоту текстуры (размер по Y), преобразованную в фиксированную точку:

HeightTexture[NumText]=INT_TO_FIXED(TexturesInfo[NumText].first.height);

Как уже говорилось выше, преобразование числа из целого в фиксированную точку' производится путем сдвига первого на 16:

# define INT_TO_FIXED(f) ((f) < 16)

Таблица HeightTexture используется в функции RenderWallRange (наложение текстуры на стены), о чем речь пойдет в 9 главе.

-    MaskOfText - одномерный массив из чисел типа int:

MaskOfText = zmalloc(N*sizeof(int *), NULL, 1 );

Каждый элемент данной таблицы является маской для выравнивания по ширине текстуры:

{

flag= 1;

while(flag*2<=TexturesInfo[NumText]. first, width)

{

flag *= 2;

}

MaskOfText[NumText] = flag-1;

}

Например, если общая ширина текстуры равна 72, то ближайшая маска для нее будет 63 (64-1). Данная таблица используется при выводе текстуры, маскируя координату X, чтобы исключить выход последней за пределы. В связи с данным обстоятельством ширина тексту ры всегда должна быть выравнена в двоичном эквиваленте. Например: .32,64,128,256 идр. значения, не превышающие 256. Если данного выравнивания не будет, то часть текстуры путем маскирования будет теряться.

Новости
Будет выпущена серия короткометражек по World of Warcraft
Blizzard выпустит серию короткометражных анимационных роликов в преддверии World of Warcraft: Battle for Azeroth.
Epic Games заработала миллиард долларов на микротранзакциях в Fortnite
Прибыль от микротранзакций в Fortnite перевалила за один миллиард — и всё благодаря тем самым ненавистным лутбоксам.