ZX Review
#11-12
26 ноября 1997 |
|
Этюды - Графический эффект "плазма".
2. "Плазма" Это целый ряд красивых эффек- тов. Вот первый из них, самый простой: 140. ;--------------------------; 3; (c) Иван Рощин, 1997 ; ; ЭФФЕКТ "PLASMA" ; ;--------------------------; LD HL,#4000 ;CLS LD (HL),L LD DE,#4001 LD BC,#1AFF LDIR ;Переносим содержимое верхней строки ;вниз и наоборот, т.е. экран как бы ;замкнут по вертикали: M2 LD HL,#5820 LD DE,#5AE0 LD BC,32 LDIR LD HL,#5AC0 LD DE,#5800 LD BC,32 LDIR ;В цикле обновляем атрибуты #5820-#5AE0: LD IX,#5820 M1 LD A,(IX+1) ADD A,(IX-1) ADD A,(IX+32) ADD A,(IX-32) DEC A ;! SRL A ;! SRL A ;! LD (IX),A INC IX LD A,XL CP #E0 JR NZ,M1 LD A,XH CP #5A JR NZ,M1 XOR A IN A,(254) CPL AND 31 JR Z,M2 RET 2 Вы можете экспериментировать с этой программой, изменяя ее участок, помеченный "!". Попро- буйте такие варианты: а) DEC A б) SRL A в) SRL A SRL A DEC A SRL A SRL A SRL A DEC A г) SRL A д) ADD A,8 SRL A SRL A INC A SRL A DEC A После этого участка можно до- бавить команду AND #3F или AND #7F - это тоже влияет на вид эф- фекта. Можно изменить и другой фраг- мент программы: LD A,(IX+1) ADD A,(IX-1) ADD A,(IX+32) ADD A,(IX-32) Он определяет, что значение те- кущего атрибута зависит от зна- чений атрибутов слева, справа, снизу и сверху от него: ┌───┐ │ ▒ │ █ - текущий атрибут │▒█▒│ │ ▒ │ ▒ - влияющие на него атрибуты └───┘ Интересные результаты полу- чаются при определении таких за- висимостей: ┌───┐ LD A,(IX+1) ┌───┐ LD A,(IX) │ ▒ │ ADD A,(IX) │ │ ADD A,(IX) │ ▓▒│ ADD A,(IX+32) │ ▓ │ ADD A,(IX+31) │ ▒ │ ADD A,(IX-32) │▒▒ │ ADD A,(IX+32) └───┘ └───┘ ┌───┐ LD A,(IX-33) ┌───┐ LD A,(IX) │▒ ▒│ ADD A,(IX-31) │ │ ADD A,(IX) │ █ │ ADD A,(IX+31) │ ▓ │ ADD A,(IX+32) │▒ ▒│ ADD A,(IX+33) │ ▒▒│ ADD A,(IX+33) └───┘ └───┘
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября