Карта на основе ромбов.
Объекты прямоугольной формы (в изометрическом пространстве, не на экране).
Расположены строго по клеткам.
Высоту объектов можно не учитывать (они всегда стоят на полу)
Существует ли такое сравнение двух прямоугольных объектов, при котором становится возможным новый объект на карту добавлять за O(N), и при этом сортировка будет оставаться правильной?
Возможно ли?
Как делали, если это способно работать?
Если нет, то какая ещё есть возможность поддерживать динамические объекты не пересортировывая всю карту?
Для наглядности, изометрия примерно вот такая, только объекты могут быть больше чем 1х1 клетка (например дом 3х3)
Можно хранить в клетке карты флажок занято/не занято, либо список объектов в ней. Когда надо поместить объект на карту - смотрим по координатам нужные нам клетки и проверяем не занял ли их еже кто-нибудь.
ты можешь карту разбить на куски
например болшие куски 256 на 256
в каждом из них куски 64 на 64
внутри них куски 16 на 16
внутри 4 на 4
соотвествено зная сколько объект портит тайлов можно узнать сколько он может портить кусков и сортировать только их
при перерисовке кадра все порченые куски помечать как битые
и за один проход сортировать все что унна и перерисовывать
Тема в архиве.