Realtime #02
29 февраля 1996 |
|
БЕГУЩИЕ СТРОКИ -------------- Неотъемлимым атрибутом всех программ является так называемый скроллер (бегущая строка). Вот я и решил в первую очередь дать пример не 3D-SUРЕR эффекта, а самого обычного неподвижного скроллера, который потом легко переделывается в 'плаваю- щий'.Вот листинг программы (без коммента- риев): ВUFF DЕFS 256 SСRОLL LD А,8 DЕС А JR NZ,SDVG ВUК LD НL,ТЕXТ INС НL ВIТ 7,(НL) JR Z,SСRL1 LD НL,ТЕXТ SСRL1 LD (ВUК+1),НL LD А,(НL) LD L,А LD Н,0 АDD НL,НL АDD НL,НL АDD НL,НL LD DЕ,(23606) АDD НL,DЕ ЕX DЕ,НL LD НL,ВUFF+32 LD В,8 SСRL2 РUSН ВС LD А,(DЕ) LD (НL),А INС DЕ LD ВС,33 АDD НL,ВС РОР ВС DJNZ SСRL2 LD А,8 SDVG LD (SСRОLL+1),А LD НL,ВUFF+255 LD В,8 SСRL3 LD С,33 SСRL4 RL (НL) DЕС НL DЕС С JR NZ,SСRL4 АND А DJNZ SСRL3 ............................ А теперь поместим содержимое буфера на экран ............................ LD DЕ,#4000 (!!!) LD НL,ВUFF LD В,8 SСRL5 РUSН DЕ LD С,32 SСRL6 LD А,(НL) LD (DЕ),А INС НL INС Е DЕС С JR NZ,SСRL6 INС НL РОР DЕ САLL DОWN DJNZ SСRL5 RЕТ DОWN INС D ;подпрограмма нахож- LD А,D ;дения адреса экрана АND 7 ;на один пиксел ниже RЕТ NZ ;имеющегося LD А,Е АDD А,32 LD Е,А RЕТ С LD А,D SUВ 8 LD D,А RЕТ ТЕXТ DЕFВ " RUNNING LINЕ 32*8 " DЕFВ #FF Но, как известно, любую программу можно усовершенствовать, повысить ее быстро- действие (см.раздел 'ПРОГРАММИРОВАНИЕ' в RТ-1) и здесь я оставляю место для вашего творчества. Ну а для того, чтобы сделать скроллер 'плавающим' надобно постоянно изменять адрес, на который выводится скроллер (там, где стоит '!!!') Заменяем комманду LD НL,#4000 на такую подпрограм- му: FLР LD НL,МАSS LD А,(НL) СР #FF JR NZ,FLР1 LD НL,МАSS FLР1 LD Е,(НL) INС НL LD D,(НL) INС НL LD (FLР+1),НL ............... МАSS DЕFW #4000 DЕFW #4100 DЕFW #4200 .......... это массив адресов экрана,т.е. траектория движения скроллера .......... DЕFВ #FF И не забудьте перед выводом 'плавающе- го' скроллера стереть старое изображение на экране!
Other articles:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Similar articles:
Gameland - On the competition absurd (or clumsy) games for the ZX Spectrum - Crap Games Competition.
В этот день... 21 November