ZXNet эхоконференция «code.zx»


тема: Про маску



от: Slavik Tretiak
кому: All
дата: 22 Feb 2006
Hello, Soplik

смотря как определять.
если заранее раздекрянчить выводилку спрайта, то можно ускорится сильно.

а если выводить спрайт познакоместово, беря из таблички "по маске" или "не по
маске" то может и тормознее станет.

на самом деле имеет смысл если спрайты достаточно большие и мест "не по маске"
больше чем "по маске"

от: Виктор Иванов
кому: All
дата: 22 Feb 2006
Hello, All

Hасколько можно ускориться,
если заранее определить, какие знакоместа выводятся по маске,
а какие просто так?
Спасибо.

от: Виктор Иванов
кому: All
дата: 24 Feb 2006
Hello, Sinus

Файтинги, то есть.
И гоночки - если бы под Спек писали гоночки.

А, и попиксельно по горизонтали так не повыводишь.

от: Гаврилов Виталий
кому: All
дата: 24 Feb 2006
Hello, Soplik

Обычная выводилка:
;hl->de
spr:
ld c,height
push de
ld b,width
row:
call putzn
inc e
jr z,$+6
ld a,d
sub 8
ld d,a
djnz row
pop de
call d_de_zn
dec c
jr nz,spr

оптимизированная:
ld a,(hl)
inc hl
exx
ld c,a
ld b,8
exx
ld c,height
spr:
push de
ld b,width
row:
exx
rr c
djnz $+9
exx
ld a,(hl)
inc hl
exx
ld c,a
ld b,8
exx
call nc,put_zn
call c,put_zn_msk
inc e
jr z,$+6
ld a,d
sub 8
ld d,a
djnz row
pop de
call d_de_zn
dec c
jr nz,spr


put_zn:
dup 8
ld a,(hl)
ld (de),a
inc hl
inc d
edup
ret

put_zn_msk:
dup 8
ld a,(de)
and (hl)
inc hl
or (hl)
ld (de),a
inc hl
inc d
edup
ret

просьба не пинать если где накосячил или не соптимизировал, писалось на лету.
Общий принцип работы с битовой маской думаю понятен %)




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
От авторов - Ньюску "зажимают" под прилавком.
free news - новости сайта freeart.4u.ru
История - разговор с создателем Львовского Спектрума.
WANTED - Розыск программ...
Интерфейс - письма читателей: "SPECTRUM - это компьютер тех, кто развивается, кто увлечен им"...

В этот день...   26 апреля