RUSH
#01
29 мая 1999 |
|
Spectrum программинг - Зеркальное отображение байтов и Восстановление фона из буфера.
Привет всем! Сегодня я хотел бы рассказать о двух вещах, знать о которых будет, думаю, полезно всем, кто занимается игрушками. Первое: зеркальное отображение байтов (понятно, для чего это надо?). Алгоритм не мой, сразу скажу. Обнаружил я его в DIZZY-XX demo by VAV/MEGACODE. С адреса, кратного 256 (например, #8000) располагается таблица (256 байт) зеркальных байтов (для 0 это #00, для #01 это #80 и т.д). Когда нам нужен mirror-байт, к примеру, для 1, то делаем так: ... LD A,1 LD E,A LD D,#80 LD A,(DE) ;A=#80, если таблица сформирована правильно ... Второе: восстановление фона из буфера (при печати спрайтов с маской). Во время сохранения фона перед каждой линией изображения сохраняем адрес, куда она выводится. При этом рабочий буфер увеличится на (высота окна*2), однако и скорость восстановления увеличится, за счет того, что не надо будет вычислять следующую экранную линию. Пример процедуры восстановления: LD HL,BUFER LD A,HIGH ;высота M1 LD E,(HL) INC HL LD D,(HL) INC HL LDI LDI LDI ;ширина 3 байта DEC A JR NZ,M1 RET Скорость можете подсчитать сами. Вот, пожалуй, и все на сегодня. See you later! Bye!
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября