Быстрая сортировка, где порядок редко меняется

Я работаю над 2D-игрой с прокруткой (думаю, Red Alert или Zelda), но у меня проблемы с рисованием.

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

Чтобы объекты правильно отображались друг перед другом, они должны быть нарисованы в определенном порядке (сначала дальние объекты и затем по направлению к "камере").

Сейчас я сортирую список всех объектов (обоих видов) каждый раз, когда игра обновляется (100 раз в секунду), и это кажется огромной тратой процессорного времени. Порядок объектов меняется очень редко, а когда меняется, то обычно они перемещаются только на одну позицию вверх или вниз в списке.

Другая проблема заключается в том, что необходимо учитывать только те объекты, которые действительно находятся на экране. Поскольку карты могут стать довольно большими с 1000-ми объектов, я не хочу сортировать их все 100 раз в секунду.

Как бы вы посоветовали решить эту проблему?

6
задан Gustav Karlsson 4 October 2011 в 22:29
поделиться