ZX Pilot
#38
31 мая 2000 |
|
Coding - пишем необычную бегущую строку.
Привет всем! Надеюсь, я вас не сильно "забодал" своими умными измышлиниями на тему running lines и вообще. Если ваш кон- кретный ответ "Да" - то немедля жмите ENT- ER и вываливаыте из раздела (ШУТКА) в про- тивном случае, можете принять пару Валидо- ла, пару cigarets для успокоения нервов и пару drinks для поднятия духа. Приступим! Сложные. К сложным бегущим строчкам можно причи- слить такую штуку, как обрамление чего ли- бо буквенной строкой. Не стоит называть сложной, строчку из рекламной паузы в Поле Чудес! Там господа из OUTLAND corp. вотк- нули 4 роллера для стандартных строчек и не хитрый пересчет со sliding'ом на углах. Сложная строчка - это, как провило таблицы последовательных пиксельных кординат, ко- торые создаются путем нудного набора по DEFB. Простейший образец сего действа: 1234567890123456 #480A┌──────────────── 1│ ............. 2│ ..╔══╗..╔═════ 3│ .╔═╝ ║..║ 4│ .║╔═══╝..║ 5│ .║║.... .║ 6│ ║......║ │ ╚══════╝ Позиция #480A - является точкой 0 в си- стеме отсчета координат, соответственно первая точка нашей строчки будет (x,y) [2,5], следующая будет [2,4],и т.д. и т.п. Теперича по простому пересчету создаем ст- рочку и видим: - пересчет сделан по знакоместам - идет рывками; - пересчет сделан по пикселам - буквы наслаиваются. А теперь как надо было делать... Берутся пиксельные координаты по вышен- азванной схеме, для простоты можно взять через одну точку, и тогда вам надо будет выводить буквы на каждую четвертую коорди- нату в четыре этапа. 1) 1..4..7..10<─┐ 2) 2..5..8..11 │cycle 3) 3..6..9..12 │ 4) 4..7..10..13─┘ Вот и все! На кромках вашей строчки (чтобы все это дело смотрелось), потребуе- тся поставить _стандартные_ роллинги. Мож- но сделать и не через один pix, а каждый pix - будет чу-у-уть плавнее, но возни мн- ого больше. Сделаю перерыв для того, дабы "похими- чить" с PILOT'ами... ;-) --- Это место специально отведено, дабы VEL &Ko могли покритиковать написанное. :о) --- Сверх-сложные. Дабы не лишать вас удовольствия разви- вать данную тему, я затрону только бордюр- ные строчки. В одной из последних (disk) Ревюх, было рассказано о том, как запусти- ть текст на бордюр, но следует заметить, что там написано немалое количество бреда сивой кобылы... :-) Для начала нам потребуется строчка, для этого с адреса #X000 набиваем первую pix строчку, #X100 - вторую, etc. на #FF строк Каждый пиксел имеет ширину в три знакомес- та и может задаваться от #00 до #07. Так же следует учитывать, что ширина строки 14 бордюрных пиксел: START LD C,#FE;Порт LD H,#X0;Старший полубайт начала ;строки. LD E,#00;Младший полубайт начала ;строки (сдвиг). DUP ZZ;Вывод ZZ строчек, зона пов- ;тора. LD L,E OUTI OUTI OUTI OUTI OUTI OUTI OUTI OUTI OUTI OUTI OUTI OUTI OUTI OUTI INC H NOP NOP EDUP;Конец зоны повтора. XOR A OUT (C),#00 LD BC,#7FFE;Space pressed? IN A,(C) AND #01 JP NZ,#XXXX;Переход на #XXXX RET Думается, что дальнейшие комментарии излишни, хотя я все же добавлю. Длина стр- оки может быть гораздо более нежели то, что видно на экране. Для ее полного прос- мотра требуется плавно менять содержимое регистра Е на входе (младший полубайт ад- реса строки). Переход по адресу #XXXX в конце строки, осуществляется на вашу про- гу. Времени остается полно, и за это время можно запустить на экран здоровенную бегу- щую строчку, а также эквалайзеры на все регистры. Естественно, строчку нужно скин- уть пониже, т.к. в самом верху экрана она окажется смятой. Сделать это можно LDIR'к- ой с 0 в 0 адрес на длинне кратной 14 или 28. И еще, сократи количевство подпрог до минимума, а то будет как вчера. :-) Alex Merkulow Sewerodwinsk Z-Zero SYSTEMS inc. 18/II-00
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября