Цитата Сообщение от Lethargeek Посмотреть сообщение
Кстати, чем это выбор слоя перед печатью спрайта "минимальнее" выбора активного цвета? Ведь фактически выбор слоя - тоже способ выбора цвета, только неинтуитивный и расточительный.
Суть проблемы не просто в цвете, а в том, что надо неким образом различать объекты на экране, в данном случае спрайты. Это нужно хотя бы потому, что вывод пикселей и установка цвета для них с помощью атрибутов - отдельные и независимые операции. Плюс к этому, в спековских играх метод "вывел и забыл" работает далеко не всегда. Т.е. надо как-то помнить какие пиксели от чего. Разделение на слои и помогает с этим справиться.

- - - Updated - - -

Цитата Сообщение от Reobne Посмотреть сообщение
Не совсем понятно. Перерисовываем фон, включен нулевой слой. И при этом стираются байты в слоях с 1 по 7 ???
Конечно. Именно так оно и работает в обычном спеке. Перерисовывается фон, при этом стираются спрайты. Его для этого и перерисовывают, чтобы стереть спрайты. Именно так и делают "старые" игры.
Теперь, когда спрайты находятся в своих слоях, фон перерисовывать не надо, но по логике работы программы, она хочет стереть все спрайты. Она так сделана, и собственно, сделать по другому в стандартном экране не получится. Мы стараемся максимально использовать логику "старой" игры. Поэтому, когда рисуется фон, надо стирать все спрайты над фоном в этом месте. Дальше, походу, должен быть вывод всех этих спрайтов, просто потому, что в оригинале перерисовка фона их тоже затирала.

Как опцию можно сделать для фона еще один номер слоя, например 128, где перерисовка будет без очистки спрайтовых слоев. Для переделки существующего софта это особого значения не имеет.