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

-    AdrTexture - начало текстуры (адрес текстуры, загруженной с диска): AdrTexture=ReadLumpForNum(NumTexturesLump[NumText][X],101);

Если вы помните, второй параметр (tag) определяет категорию данных, и в данном случае указывает на то, что данные кэшируются (tag >100).

OffsetTextureColumn[NumText][X] указывает на начало данных в текстуре NumText для столбца X. Здесь координаты X и Y не следует путать с координатами на экране. Это координаты внутри текстуры. В заключение можно отметить, что заполнение данной таблицы упрощается в связи с особенностями формата графических данных в игре DOOM. Об этом вы можете прочесть в главе 9.

-    AdLoadingTexture - двумерный массив на тип char:

AdLoadingTexture = (char **)zmalloc(N*sizeof(char **), NULL, 1 );

Данная таблица представляет собой таблиц)' кэша для комбинированных текстур, о шгроых говорилось при описании таблицы NumTexturesLump. Как вы помните, комбинированная текстура (состоящая из нескольких картинок) создается во временной памяти путем загрузки всех картинок, определенных в txdefMorc. Если при выводе очередного столбца каждый раз будет проичво.ипъся данная операция, то это сильно затормозит игру. Очевидным выходом является метод кэширования. Те. при первом выводе комбинированной текстуры для нее выделяется память:

zmalloc( SizeOfColumns[NumText],& AdLoadingTexture[NumText], 101);

где и создается образ комбинированной текстуры. При выводе очередного столбца вероятнее всего вторично не надо создавать образ, т.к. он уже есть и на него указываетAdLoadingTexture[NumText], Мы сказали “вероятнее всего”, потому' что данный участок памяти имеет свойство кэширования. Если при очередном вызове zmalloc окажется, что последнему не хватает памяти, он может для себя освободить данный участок, записав в AdLoadingTexture[NumText] нуль.

-    SizeOfColumns - одномерный массив на тип int:

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

Этот массив очень прост. Для конкретной текстуры элемент вычисляется как сумма высот общей текстуры только для комбинированных столбцов:

if (CountTexlnColumn[NumText][[i] > 1 ) SizeOfColumns[NumText]+=TexturesInfo[NumText].first.height;

Здесь CountTexInColumn[NumText][[i] определяет количество картинок для

Новости
Сценарист Uncharted рассказала о проблемах одиночных игр
Над игрой работала Эми Хенниг, сценарист серий Uncharted и Legacy of Kain.
Готовится выход дополнения «Апокалипсис» для Battlefield 1
Компания Electronic Arts, которая занимается изданием компьютерных игр, и студия-разработчик DICE готовят выход дополнения «Апокалипсис» для игрового проекта Battlefield 1. В дополненной версии появится пять новых карт.