ZXNet эхоконференция «code.zx»
тема: Гасилка экрана
от: Vyacheslav Kalinin
кому: All
дата: 22 Oct 2003
Здравствуйте, All !
Сейчас доделываю Fire and Ice, так вот там
весьма активно сабж используется.
Hо я не смог ее быстрой сделать, у меня
не успевает даже за один фрейм.
Может кто сможет написать чтобы успевала за врейм
и занимала не много места? (примерно не более 200 байт)
Пересечения с лучем не страшны, уменьшать должно
как инк, так и папер, брайт не должна трогать.
newart/n-Discovery - Code, Gfx, AY Music fa
от: Kirill Frolov
кому: Vyacheslav Kalinin
дата: 25 Oct 2003
Hемедленно нажми на RESET, Vyacheslav Kalinin!
On Wed, 22 Oct 03 15:29:00 +0400, Vyacheslav Kalinin wrote:
VK> Сейчас доделываю Fire and Ice, так вот там
VK> весьма активно сабж используется.
VK> Hо я не смог ее быстрой сделать, у меня
VK> не успевает даже за один фрейм.
VK> Может кто сможет написать чтобы успевала за врейм
VK> и занимала не много места? (примерно не более 200 байт)
VK> Пересечения с лучем не страшны, уменьшать должно
VK> как инк, так и папер, брайт не должна трогать.
Итого: ~58400 тактов, <120 байт.
Функция fade_init должна быть единожды вызвана, в начале программы.
FADE_SIZE equ 0x40
fade_by_1:
ld hl, 0x5800 ; 10
ld de, fade_array ; 20
fade_loop:
ld a, FADE_SIZE-1
and (hl)
ld e, a
; ld de, fade_array ; (альтернатива, медленная)
; add a, e
; ld e, a
; adc a, d
; sub e
; ld d, a
ld a, (de)
xor (hl)
and FADE_SIZE-1
xor (hl)
ld (hl), a
inc hl
ld a, 0x5b-1
cp h
jp nc, fade_loop ; (106 -> 81408) 76 -> 58368
ret
fade_init:
ld hl, fade_array+FADE_SIZE
ld b, FADE_SIZE-1
fade_init_loop:
dec hl
ld a, b
and a, 0x07
adc a, -1
ld a, b
sbc a, 0x80
jr nc, $+4
add a, 0x80
ld (hl), a
dec b
jp p, fade_init_loop
ret
; адрес КРАТHЫЙ 256-и (в альтернативном варианте не требуется)
fade_array:
ds FADE_SIZE ; 64 байта
|