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

Новости
Sony PlayStation 5 стала последней игровой консолью в мире
Игровые консоли присутствуют в мире уже более 30 лет, за которые в них успели поиграть целые поколения игроков, то есть отцы, дети и их внуки.
Авторы новой Call of Duty объявили даты проведения бета-теста
Студия Treyarch официально озвучила даты проведения бета-тестов мультиплеерного режима ожидаемого военного шутера Call of Duty: Black Ops 4. Разработчики уже раскрыли немало особенностей соревновательной части игры, но многое остаётся за завесой тайны.