А как карта будет понимать, что отрисовка слоя закончена, и следующая запись в память - это уже отрисовка следующего кадра? Например, в Саботере достаточно один раз при входе на экран нарисовать задний и передний слой, а в промежуточном слое персонажей графику надо отрисовывать постоянно.
---------- Post added at 17:13 ---------- Previous post was at 16:50 ----------
А еще все же интересно как надо будет переделывать графику. Я опять на примере Саботера (потому что других игр пока не знаю).
В Саботере фактически 4 способа хранения графики:
1. Задний фон - тайлы со стандартными атрибутами (9 байт) - выводятся "как есть", но их атрибуты могут быть запросто изменены (комната бессмертия - стены и вещество в ящике, искры на ограде). В почти таком же формате хранятся изображения предметов в ящиках и в руках ГГ.
2. Спрайты персонажей - всегда монохромные, тайлы спрайтов хранятся по 16 байт (растр + маска), рисуются как правило черным цветом (но иногда цвет ГГ меняется, например, после телепорта или при ударе током, огонь из огнемета охранника, белое метательное оружие на фоне неба).
3. Спрайты переднего фона - имеют растр, маску и атрибуты (17 байт), тоже могут быть перекрашены (консоль, например, когда на ее ГГ попадает).
4. Фонт - старндартный формат по 8 байт на символ без атрибутов, раскрашивается при выводе (может быть отрисован как тайлы переднего слоя).
zst, распиши, пожалуйста, как малыми усилиями переделать графику всех четырех типов? Можно ли это дело автоматизировать с тем, чтобы вначале получить точно так же раскрашеную графику, но без клешинга? Как управлять цветами отрисовки в игре?