Цитата:
Сообщение от
Nesser
Непонятные для меня моменты:
Если карта успевает отображать только 5 слоёв с прозрачностью, то какой смысл в 8 слоях?
На отключенных слоях, например, можно рисовать следующий кадр, а потом по INT их включить, а слои с предыдущим изображением выключить.
Цитата:
Что подразумевается под прозрачностью, просто отсутствие пикселя на данном плане и оставленный пиксель с предыдущего плана или же настоящая прозрачность - цвет пикселя на данном плане интерполированный с цветами пикселей предыдущих планов
Пиксель не может отсутствовать на слое - он или прозрачный и через него будет видно изображение с нижних слоев при выводе на монитор или он цветной.
Цитата:
при переделке игре надо оставлять стандартный вывод в 16384 и добавлять вывод цветов в пзу или полностью делать заново и всё выводить в пзу? если по 1 варианту так это явное увеличение выполнения, а если по 2-му то какой тогда смысл оставлять такую "неудобную" работу с пикселями если всё равно придётся всё перелопачивать
Сначала все выводится стандартно с адреса 16384 в слое 0. Потом, для устранения клешинга главного героя (ГГ), подпрограмму его вывода можно изменить для вывода в режиме COLOR2M в слой 1. Цвета спрайта в переменной attr те же, что были раньше.
Цитата:
скроллинг экрана надо будет делать по принципу 15 летней давности аля денди? мож у кого посвежей идея есть? :)
Денди сделали в 1983 году, на год позже ZX Spectruma, то есть 32 года назад. Однако кое-что оттуда можно применить. У Спектрума нет аппаратного скроллинга. Почему бы не добавить ? Только у нас сдвиг будет задаваться на 1-8 точек. Это свежая идея ?
Цитата:
я не понимаю как мне вывести спрайт в координаты x=243, y=179
Пример копирования спрайта с маской для стандартного режима (40*8=320 такта):
Код:
; hl - адрес спрайта с маской
; de - адрес в области пикселей экрана
dup 8
ld a,(de)
and (hl)
inc l
or (hl)
inc l
ld (de),a
inc d
edup
Пример копирования спрайта с маской для нового режима с линейной адресацией с адреса 0000 (36*8=288 тактов):
Код:
; hl - адрес спрайта с маской
; de - адрес в области пикселей экрана
dup 8
ldi
dec e
ldi
edup
Пример копирования спрайта с маской для стандартного режима с использованием стека (36*8=288)
Код:
; стек - адрес спрайта с маской
; hl - адрес в области пикселей экрана
dup 8
pop de
ld a,(hl)
and e
or d
ld (hl),a
inc h
edup
Пример копирования спрайта с маской для нового режима с линейной адресацией с адреса 0000 с использованием стека (28*8=224 такта):
Код:
; стек - адрес спрайта с маской
; hl - адрес в области пикселей экрана
dup 8
pop de
ld (hl), e
ld (hl), d
inc l
edup