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

4,2035,50 54,6066,84

Если же новый участок стены имеет координаты:

44,64, то таблица будет иметь вид:

4.2035.6466.84

Таким образом, новый сегмент просто увеличил в размере второй участок в таблице. При выводе на экран данного сегмента произошло отсечение справа участка от 44 до 50, а на экране мы увидели часть от 50 до 64. Если бы вторая (правая) координата нового сегмента была больше значения 66, но меньше значения 84, то сегмент бы отсекся с обеих сторон, а на экран вывелся участок с координатами: 50,66. При этом таблица бы выглядела так:

4.2035.84

Если бы вторая координата нового сегмента превышала значение 84 (например 112), то у данного сегмснта произошло бы отсечение справа (44,50) и в середине (66,84). При этом таблица выглядела бы так:

4,20 35,112

Как видно, все очень просто, если учитывать, что первыми прорисовываются сегменты на переднем плане и так далее, по мере удаления от глаза, до тех пор, пока не прорисуются все видимые сегменты стен. Данный рендеринг нам гарантирует система BSP дерева (рекурсивного дерева).

Функция RenderWallRange прорисовывает участок сегмента стены на экране. Ее исходный текст мы здесь приводить не будем.

Функция DrawPlanes.

Функция DrawPlanes прорисовывает полы и потолки трехмерного лабиринта, используя сформированную ранее таблиц)' VisPlanes. Принцип действия очень прост. Данная функция закрашивает участки экрана соответствующими текстурами в тех местах, куда не выводились сегменты стен. Для этого в структуре vplan используются значения:

MinPozX, MaxPozX - соответственно минимальная и максимальная координаты X закрашиваемой области.

MinY[322] и MaxY[322] - массив минимальных и максимальных значений Y в зависимости отХ.

Исходный текст функции DrawPlanes:

Новости
Авторы проекта «1917» выпустили онлайн-игру об истории СССР
Разработчики рассказали о том, что пользователи их игры смогут принять участие в главных исторических событиях советского периода.
В God of War не будет сезонного пропуска
Креативный директор студии SIE Santa Monica Studio Кори Барлог заявил, что в новой части God of War не будет сезонного пропуска.