ПрограммированиеФорумГрафика

Изометрическая тайловая карта, сортировка вставкой

#0
9:41, 9 окт 2012

Карта на основе ромбов.
Объекты прямоугольной формы (в изометрическом пространстве, не на экране).
Расположены строго по клеткам.
Высоту объектов можно не учитывать (они всегда стоят на полу)

Существует ли такое сравнение двух прямоугольных объектов, при котором становится возможным новый объект на карту добавлять за O(N), и при этом сортировка будет оставаться правильной?

Возможно ли?
Как делали, если это способно работать?
Если нет, то какая ещё есть возможность поддерживать динамические объекты не пересортировывая всю карту?

#1
9:56, 9 окт 2012

Изображение

Для наглядности, изометрия примерно вот такая, только объекты могут быть больше чем 1х1 клетка (например дом 3х3)

#2
11:53, 9 окт 2012

Можно хранить в клетке карты флажок занято/не занято, либо список объектов в ней. Когда надо поместить объект на карту - смотрим по координатам нужные нам клетки и проверяем не занял ли их еже кто-нибудь.

#3
11:59, 9 окт 2012

ты можешь карту разбить на куски
например болшие куски 256 на 256
в каждом из них куски 64 на 64
внутри них куски 16 на 16
внутри 4 на 4

соотвествено зная сколько объект портит тайлов можно узнать сколько он может портить кусков и сортировать только их
при перерисовке кадра все порченые куски помечать как битые
и за один проход сортировать все что унна и перерисовывать

ПрограммированиеФорумГрафика

Тема в архиве.