
Сообщение от
CityAceE
Объясни, пожалуйста, суть этого метода.
Хм... 1 берешь байт например %00111100 делаешь ROL влево, ROL вправо и OR ишь это все в один байт. потом инвертишь результат
получается байт %10000001.
2 делаешь этим способом все 256 байт от 0 до 255 и все кладешь в одну таблицу. Это таблица автомаски
3 при выводе изображения каждый байт спрайта маскируешь байтом из таблицы автомаски. это дает частичное маскирование фона. В динамике смотрится нормально. смотри игру Trantor например
методы предложенные в zx press - остаются затратными всегда
- - - Добавлено - - -
Код:
;генератор таблицы маски
ld hl,mask_tbl
l0
ld a,l
add a,a
ld c,a
ld a,l
or a
rra
or c
or l
cpl
ld (hl),a
inc l
jp nz,l0
- - - Добавлено - - -
Код:
;вывод спрайта
;наибыстрый вариант наверное через стек
; hl маска
; de место на экране или буфер спрайта
; sp адрес спрайта
...
pop bc
ld l,c
ld a,(de)
and (hl)
or l
ld (de),a
inc e ;переход ниже
ld l,b
ld a,(de)
and (hl)
or l
ld (de),a
inc e ;переход ниже
...