Готовый перевод Game Programming Patterns / Паттерны программирования в играх: 5.2 Dirty Flag
Цель
Избегать работы до тех пор, пока ее результат не потребуется.
Мотивация
"Флаг" и "бит" синонимы в программировании: они оба означают микрон данных, который может быть в одном из двух состояний.
Мы называем их "правда (true)" и "ложь (false)", или, иногда, "установить (set)" и "очистить (cleared)". Я буду использовать их по очереди.
"Грязный бит" - это эквивалентное название для данного паттерна, но я решил использовать название, которое не выглядит пошлым.
Модераторы Википедии не имеют моего самоконтроля и поэтому используют название грязный бит.
Расположение судна в море
Многие игры имеют что-то, называемое граф сцен.
Это большая структура данных, которая содержит в себе все объекты мира.
Графический движок использует ее для определения, где на экране необходимо отрисовать предметы.
В самом простом случае граф сцен - это просто плоский список объектов.
Каждый объект имеет модель или другой графический приметив, а так же трансформацию.
Трансформация описывает положение объекта, поворот и масштаб в мире.
Перемещая или поворачивая объект мы просто изменяем его трансформацию.
Механизм хранения трансформации и взаимодействия с ней к сожалению не попал в рамки данной книги.
Очень коротко и обобщенно: это матрица 4 на 4.
Вы можете сделать одну трансформацию, которая включает в себя две трансформации - например, преобразовать и повернуть объект - умножив две матрицы.
Как и почему это работает останется в качестве упражнения для читателя.
Когда отрисовщик отрисовывает объект, он берет объектную модель, применяет к ней трансформацию и затем отрисовывает ее в мире.
К примеру, представьте, что в нашем игровом мире существует пиратский корабль, находящийся в море.
На вершине мачты корабля воронье гнездо.
Переведено на Нотабеноиде
http://notabenoid.org/book/51192/215231
Переводчики: RS8, Qeruim
Настройки
Готово:
