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

Новости
Descent выпустит релиз игры Overload в мае
Авторы Descent озвучили дату ожидаемого релиза Overload, по заявлению авторов игрового продукта, новинка выйдет весной текущего года.
Разработчики PUBG удалят шлем третьего уровня с карты
Компания удалит с карты шлемы третьего уровня и переработает баланс оружия, чтобы пользователи выбирали более разнообразный арсенал.