ZX Forum
#04
19 ноября 1997 |
|
Экранные эффекты - "наливающийся" экран из игры Rockstar.
Еще один совершенно "сногсши- бательный" эффект из программы ROCKSTAR. Это так называемый "наливающийся" экран. Как извес- тно, лучше один раз увидеть, поэтому посмотрите на монитор. Экран разворачивается начиная с самой нижней пиксельной линии. При этом происходит как бы "эф- фект водопада": сверху вниз "об- рушивается" изображение, посте- пенно "наполняя" экран снизу до- верху. Причем, в отличие от эф- фекта сворачивания экрана в про- грамме COMANDO TRACER, здесь все происходит в цвете, создавая со- вершенно потрясающий эффект. Листинг процедуры, выполняю- щей эффект "наливающегося" экра- на. 1420. 62AC 21E0BE LD HL,#BEE0 62AF 7D LD A,L 62B0 32439C LD (#9C43),A 62B3 7C LD A,H 62B4 32449C LD (#9C44),A 62B7 3EC0 LD A,#C0 62B9 32459C LD (#9C45),A 62BC 21E0BB LD HL,#BBE0 62BF 7D LD A,L 62C0 32499C LD (#9C49),A 62C3 7C LD A,H 62C4 324A9C LD (#9C4A),A 62C7 3E18 LD A,#18 62C9 32409C LD (#9C40),A 62CC CDFA62 CALL #62FA 62CF CD6763 CALL #6367 62D2 3A4A9C LD A,(#9C4A) 62D5 3D DEC A 62D6 324A9C LD (#9C4A),A 62D9 0E0C LD C,#0C 62DB 3A459C LD A,(#9C45) 62DE 2F CPL 62DF 47 LD B,A 62E0 10FE DJNZ #62E0 62E2 0D DEC C 62E3 79 LD A,C 62E4 FE00 CP #00 62E6 C2DB62 JP NZ,#62DB 62E9 3A459C LD A,(#9C45) 62EC 3D DEC A 62ED 32459C LD (#9C45),A 62F0 E607 AND #07 62F2 FE00 CP #00 62F4 CA2D63 JP Z,#632D 62F7 C3CF62 JP #62CF ------------------------------ 62FA 3A409C LD A,(#9C40) 62FD 32549C LD (#9C54),A 6300 110058 LD DE,#5800 6303 2A439C LD HL,(#9C43) 6306 012000 LD BC,#0020 6309 E5 PUSH HL 630A EDB0 LDIR 630C E1 POP HL 630D EB EX DE,HL 630E 09 ADD HL,BC 630F EB EX DE,HL 6310 3A549C LD A,(#9C54) 6313 3D DEC A 6314 32549C LD (#9C54),A 6317 FE00 CP #00 6319 C20363 JP NZ,#6303 631C 012000 LD BC,#0020 631F 2A439C LD HL,(#9C43) 6322 ED42 SBC HL,BC 6324 7D LD A,L 6325 32439C LD (#9C43),A 6328 7C LD A,H 6329 32449C LD (#9C44),A 632C C9 RET ------------------------------ 632D 21409C LD HL,#9C40 6330 35 DEC (HL) 6331 3A459C LD A,(#9C45) 6334 E63F AND #3F 6336 FE00 CP #00 6338 CA4D63 JP Z,#634D 633B 2A499C LD HL,(#9C49) 633E 11E007 LD DE,#07E0 6341 19 ADD HL,DE 6342 7D LD A,L 6343 32499C LD (#9C49),A 6346 7C LD A,H 6347 324A9C LD (#9C4A),A 634A C3CC62 JP #62CC ------------------------------ 634D 3A459C LD A,(#9C45) 6350 FE00 CP #00 6352 C8 RET Z 6353 00 NOP 6354 00 NOP 6355 01E000 LD BC,#00E0 6358 2A499C LD HL,(#9C49) 635B 09 ADD HL,BC 635C 7D LD A,L 635D 32499C LD (#9C49),A 6360 7C LD A,H 6361 324A9C LD (#9C4A),A 6364 C3CC62 JP #62CC ------------------------------ 6367 3E00 LD A,#00 6369 32469C LD (#9C46),A 636C 110040 LD DE,#4000 636F 2A499C LD HL,(#9C49) 6372 012000 LD BC,#0020 6375 D5 PUSH DE 6376 EDB0 LDIR 6378 D1 POP DE 6379 14 INC D 637A 3A469C LD A,(#9C46) 637D 3C INC A 637E 32469C LD (#9C46),A 6381 47 LD B,A 6382 3A459C LD A,(#9C45) 6385 B8 CP B 6386 C8 RET Z 6387 3A469C LD A,(#9C46) 638A E607 AND #07 638C FE00 CP #00 638E C26F63 JP NZ,#636F 6391 3A469C LD A,(#9C46) 6394 E63F AND #3F 6396 FE00 CP #00 6398 CAA563 JP Z,#63A5 639B 01E007 LD BC,#07E0 639E EB EX DE,HL 639F ED42 SBC HL,BC 63A1 EB EX DE,HL 63A2 C36F63 JP #636F 63A5 01E000 LD BC,#00E0 63A8 EB EX DE,HL 63A9 ED42 SBC HL,BC 63AB EB EX DE,HL 63AC C36F63 JP #636F 2 Запускается процедура с адре- са загрузки 62ACH. Но перед этим экран, который будет подвергнут такому эффекту, должен быть заг- ружен в адрес A400H. При работе процедура исполь- зует 11 системных ячеек с адреса 9C40H (40000) по 9C4AH (40010) включительно. Выход из процедуры происхо- дит по адресу 6352H командой RET Z. Вы можете, в зависимости от конкретных обстоятельств, под- ставить вместо RET Z и двух ко- манд NOP другой вариант: JP Z,ADDR. Для получения блока кодов "наливающийся экран" можно вос- пользоваться Бейсик-программой: 1 READ ram: CLEAR ram: READ f $: READ st: READ len: FOR a=st T O st+len-1: READ b: POKE a,b: NE XT a: SAVE f$CODE st,len 10 DATA 25259,"roc",25260,259 100 DATA 033,224,190,125,050,067,156,124, 050,068,156,062,192,050,069,156, 033,224,187,125,050,073,156,124, 050,074,156,062,024,050,064,156 110 DATA 205,250,098,205,103,099,058,074, 156,061,050,074,156,014,012,058, 069,156,047,071,016,254,013,121, 254,000,194,219,098,058,069,156 120 DATA 061,050,069,156,230,007,254,000, 202,045,099,195,207,098,058,064, 156,050,084,156,017,000,088,042, 067,156,001,032,000,229,237,176 130 DATA 225,235,009,235,058,084,156,061, 050,084,156,254,000,194,003,099, 001,032,000,042,067,156,237,066, 125,050,067,156,124,050,068,156 140 DATA 201,033,064,156,053,058,069,156, 230,063,254,000,202,077,099,042, 073,156,017,224,007,025,125,050, 073,156,124,050,074,156,195,204 150 DATA 098,058,069,156,254,000,200,000, 000,001,224,000,042,073,156,009, 125,050,073,156,124,050,074,156, 195,204,098,062,000,050,070,156 160 DATA 017,000,064,042,073,156,001,032, 000,213,237,176,209,020,058,070, 156,060,050,070,156,071,058,069, 156,184,200,058,070,156,230,007 170 DATA 254,000,194,111,099,058,070,156, 230,063,254,000,202,165,099,001, 224,007,235,237,066,235,195,111, 099,001,224,000,235,237,066,235, 195,111,099 Ниже приведена Бейсик-прог- рамма, демонстрирующая "наливаю- щийся экран". Здесь в строке 30 происходит предварительная заг- рузка экрана-заставки от прог- раммы ROCKSTAR (или любого дру- гого) под адрес A400H (41984). Процедура запускается сразу же после окончания загрузки. 10 BORDER 0: PAPER 0: INK 7: C LEAR 25259 20 LOAD "roc"CODE 30 LOAD "rockst $"CODE 41984 40 RANDOMIZE USR 25260 50 BEEP .1,26: BEEP .1,20: PAU SE 0
Другие статьи номера:
Похожие статьи:
В этот день... 13 декабря