ZX Forum
#04
19 ноября 1997 |
|
Экранные эффекты - сложный многоступенчатый эффект из игры Bubbler.
BUBBLER В этой программе табличка с фирменным названием игры и атри- бутами фирмы-изготовителя внача- ле плавно опускается сверху, прорисовываясь на черном фоне экрана. Затем эта табличка- спрайт начинает "вращаться" во- круг горизонтальной оси, при этом цвет его меняется с белого на желтый (при повороте обрат- ной стороной). Вращение происхо- дит до нажатия на любую клавишу, после чего табличка-спрайт "за- мирает" в том состоянии, в каком его застало нажатие на клавишу, перестав вращаться, и плавно "улетает" вверх, исчезая с экра- на. Предлагаемая процедура вос- производит сложный многоступен- чатый эффект, поэтому она доста- точно объемна. Вот ее листинг: 1420. E283 F5 PUSH AF E284 FDE5 PUSH IY E286 DDE5 PUSH IX E288 D9 EXX E289 E5 PUSH HL E28A D5 PUSH DE E28B C5 PUSH BC E28C D9 EXX E28D E5 PUSH HL E28E D5 PUSH DE E28F C5 PUSH BC E290 ED73A9E2 LD (#E2A9),SP E294 CD66E3 CALL #E366 E297 ED7BA9E2 LD SP,(#E2A9) E29B C1 POP BC E29C D1 POP DE E29D E1 POP HL E29E D9 EXX E29F C1 POP BC E2A0 D1 POP DE E2A1 E1 POP HL E2A2 D9 EXX E2A3 DDE1 POP IX E2A5 FDE1 POP IY E2A7 F1 POP AF E2A8 C9 RET ------------------------------ E2A9 00 00 E2AB 17 8E 00 80 ------------------------------ E2AF ED5BABE2 LD DE,(#E2AB) E2B3 2AADE2 LD HL,(#E2AD) E2B6 7E LD A,(HL) E2B7 C605 ADD A,#05 E2B9 47 LD B,A E2BA 3ADE5C LD A,(#5CDE) E2BD 80 ADD A,B E2BE 83 ADD A,E E2BF 5F LD E,A E2C0 7E LD A,(HL) E2C1 2F CPL E2C2 C616 ADD A,#16 E2C4 82 ADD A,D E2C5 85 ADD A,L E2C6 57 LD D,A E2C7 ED53ABE2 LD (#E2AB),DE E2CB 23 INC HL E2CC 7C LD A,H E2CD E69F AND #9F E2CF 67 LD H,A E2D0 22ADE2 LD (#E2AD),HL E2D3 C9 RET ------------------------------ E2D4 00 00 00 ------------------------------ E2D7 3600 LD (HL),#00 E2D9 23 INC HL E2DA 10FB DJNZ #E2D7 E2DC C9 RET ------------------------------ E2DD DBFE IN A,(#FE) E2DF 2F CPL E2E0 E61F AND #1F E2E2 C9 RET ------------------------------ E2E3 ED73D85C LD (#5CD8),SP E2E7 31005B LD SP,#5B00 E2EA 010280 LD BC,#8002 E2ED 114747 LD DE,#4747 E2F0 C300E3 JP #E300 ------------------------------ E2F3 ED73D85C LD (#5CD8),SP E2F7 310058 LD SP,#5800 E2FA 010C00 LD BC,#000C E2FD 110000 LD DE,#0000 E300 D5 PUSH DE E301 10FD DJNZ #E300 E303 0D DEC C E304 20FA JR NZ,#E300 E306 ED7BD85C LD SP,(#5CD8) E30A C9 RET ------------------------------ E30B CB3C SRL H E30D CB3C SRL H E30F CB3C SRL H E311 CB3C SRL H E313 CB1D RR L E315 CB3C SRL H E317 CB1D RR L E319 CB3C SRL H E31B CB1D RR L E31D 7C LD A,H E31E C658 ADD A,#58 E320 67 LD H,A E321 C9 RET ------------------------------ E322 85 ADD A,L E323 6F LD L,A E324 D0 RET NC E325 24 INC H E326 C9 RET ------------------------------ E327 00 00 00 ------------------------------ E32A 1127E3 LD DE,#E327 E32D E5 PUSH HL E32E CD0BE3 CALL #E30B E331 1A LD A,(DE) E332 3244E3 LD (#E344),A E335 C61E ADD A,#1E E337 2F CPL E338 324CE3 LD (#E34C),A E33B 13 INC DE 1420.E33C 1A LD A,(DE) E33D 4F LD C,A E33E 13 INC DE E33F 1A LD A,(DE) E340 3246E3 LD (#E346),A E343 0600 LD B,#00 E345 3600 LD (HL),#00 E347 2C INC L E348 10FB DJNZ #E345 E34A 2D DEC L E34B 1100FF LD DE,#FF00 E34E 19 ADD HL,DE E34F 0D DEC C E350 20F1 JR NZ,#E343 E352 E1 POP HL E353 C9 RET ------------------------------ E354 30 FF 2F F7 E358 2D ED 28 D3 E35C 22 B2 1B 8E E360 13 63 0A 33 E364 00 00 ------------------------------ E366 21140E LD HL,#0E14 E369 2227E3 LD (#E327),HL E36C CDF3E2 CALL #E2F3 E36F CDE3E2 CALL #E2E3 E372 AF XOR A E373 32DC5C LD (#5CDC),A E376 32DD5C LD (#5CDD),A E379 3C INC A E37A 32FEFF LD (#FFFE),A E37D CD7FE5 CALL #E57F E380 3ADC5C LD A,(#5CDC) E383 47 LD B,A E384 FE09 CP #09 E386 380A JR C,#E392 E388 FE11 CP #11 E38A 3804 JR C,#E390 E38C FE18 CP #18 E38E 3802 JR C,#E392 E390 ED44 NEG E392 E60F AND #0F E394 87 ADD A,A E395 2154E3 LD HL,#E354 E398 CD22E3 CALL #E322 E39B 4E LD C,(HL) E39C 23 INC HL E39D 5E LD E,(HL) E39E 79 LD A,C E39F B3 OR E E3A0 201A JR NZ,#E3BC E3A2 D9 EXX E3A3 3AFEFF LD A,(#FFFE) E3A6 3C INC A E3A7 E601 AND #01 E3A9 32FEFF LD (#FFFE),A E3AC C646 ADD A,#46 E3AE 3229E3 LD (#E329),A E3B1 213077 LD HL,#7730 E3B4 CD2AE3 CALL #E32A E3B7 D9 EXX E3B8 1802 JR #E3BC ------------------------------ E3BA 18C1 JR #E37D ------------------------------ E3BC 21E8FF LD HL,#FFE8 E3BF 22FCFF LD (#FFFC),HL E3C2 78 LD A,B E3C3 FE09 CP #09 E3C5 380E JR C,#E3D5 E3C7 FE19 CP #19 E3C9 300A JR NC,#E3D5 E3CB 211800 LD HL,#0018 E3CE 22FCFF LD (#FFFC),HL E3D1 79 LD A,C E3D2 ED44 NEG E3D4 4F LD C,A E3D5 3E47 LD A,#47 E3D7 81 ADD A,C E3D8 67 LD H,A E3D9 2E10 LD L,#10 E3DB 7B LD A,E E3DC D9 EXX E3DD 5F LD E,A E3DE 1600 LD D,#00 E3E0 6A LD L,D E3E1 62 LD H,D E3E2 D9 EXX E3E3 CD9EE5 CALL #E59E E3E6 1100F7 LD DE,#F700 E3E9 1824 JR #E40F ------------------------------ E3EB 3ADD5C LD A,(#5CDD) E3EE A7 AND A E3EF 2007 JR NZ,#E3F8 E3F1 3D DEC A E3F2 32DD5C LD (#5CDD),A E3F5 CD61E4 CALL #E461 E3F8 CDCCE4 CALL #E4CC E3FB AF XOR A E3FC CDDDE2 CALL #E2DD E3FF C22FE4 JP NZ,#E42F E402 18B6 JR #E3BA ------------------------------ E404 3ADC5C LD A,(#5CDC) E407 3C INC A E408 E61F AND #1F E40A 32DC5C LD (#5CDC),A E40D 18DC JR #E3EB ------------------------------ E40F 0E60 LD C,#60 E411 0614 LD B,#14 E413 E5 PUSH HL E414 1A LD A,(DE) E415 B6 OR (HL) E416 77 LD (HL),A E417 13 INC DE E418 23 INC HL E419 10F9 DJNZ #E414 E41B E1 POP HL E41C 0D DEC C E41D 28E5 JR Z,#E404 E41F D9 EXX E420 7C LD A,H E421 19 ADD HL,DE E422 BC CP H E423 D9 EXX E424 28EB JR Z,#E411 E426 79 LD A,C E427 ED4BFCFF LD BC,(#FFFC) E42B 09 ADD HL,BC E42C 4F LD C,A E42D 18E2 JR #E411 ------------------------------ E42F 21C64F LD HL,#4FC6 E432 0614 LD B,#14 E434 CDD7E2 CALL #E2D7 E437 21CDF0 LD HL,#F0CD E43A 062C LD B,#2C E43C CDD7E2 CALL #E2D7 E43F 3E07 LD A,#07 E441 32D85C LD (#5CD8),A E444 FD2AF15C LD IY,(#5CF1) E448 FB EI E449 76 HALT E44A 3AD85C LD A,(#5CD8) E44D FE77 CP #77 E44F F3 DI E450 C8 RET Z E451 FD2AF15C LD IY,(#5CF1) E455 FB EI E456 3C INC A E457 3C INC A E458 32D85C LD (#5CD8),A E45B CD87E4 CALL #E487 E45E C34AE4 JP #E44A ------------------------------ E461 3E10 LD A,#10 E463 32E95C LD (#5CE9),A E466 3E78 LD A,#78 E468 32D85C LD (#5CD8),A E46B FD2AF15C LD IY,(#5CF1) E46F FB EI E470 3AD85C LD A,(#5CD8) E473 F3 DI E474 FE08 CP #08 E476 C8 RET Z E477 FD2AF15C LD IY,(#5CF1) E47B FB EI E47C 3D DEC A E47D 3D DEC A E47E 32D85C LD (#5CD8),A E481 CD87E4 CALL #E487 E484 C370E4 JP #E470 ------------------------------ E487 67 LD H,A E488 2E10 LD L,#10 E48A ED73DA5C LD (#5CDA),SP E48E CD9EE5 CALL #E59E E491 76 HALT E492 F3 DI E493 F9 LD SP,HL E494 114802 LD DE,#0248 E497 1B DEC DE E498 7A LD A,D E499 B3 OR E E49A 20FB JR NZ,#E497 E49C 3AD85C LD A,(#5CD8) E49F C687 ADD A,#87 E4A1 2F CPL E4A2 47 LD B,A E4A3 C32BE5 JP #E52B ------------------------------ E4A6 BD E5 D5 E5 E4AA ED E5 05 E6 E4AE 1D E6 35 E6 E4B2 4D E6 65 E6 E4B6 7D E6 95 E6 E4BA AD E6 C5 E6 E4BE DD E6 F5 E6 E4C2 0D E7 25 E7 E4C6 00 00 00 00 E4CA 00 00 ------------------------------ E4CC 3AD4E2 LD A,(#E2D4) E4CF E607 AND #07 E4D1 203A JR NZ,#E50D E4D3 3A01FF LD A,(#FF01) E4D6 E680 AND #80 E4D8 2830 JR Z,#E50A E4DA 3AC7E4 LD A,(#E4C7) E4DD A7 AND A E4DE 282D JR Z,#E50D E4E0 3A00FF LD A,(#FF00) E4E3 3D DEC A E4E4 3E00 LD A,#00 E4E6 2022 JR NZ,#E50A E4E8 3AC6E4 LD A,(#E4C6) E4EB 3203FF LD (#FF03),A E4EE 3AC7E4 LD A,(#E4C7) E4F1 D620 SUB #20 E4F3 47 LD B,A E4F4 3ACBE4 LD A,(#E4CB) E4F7 E6F0 AND #F0 E4F9 B0 OR B E4FA 3202FF LD (#FF02),A E4FD 3AC9E4 LD A,(#E4C9) E500 3204FF LD (#FF04),A E503 3AC8E4 LD A,(#E4C8) E506 3205FF LD (#FF05),A E509 AF XOR A E50A 32C7E4 LD (#E4C7),A E50D 2AD4E2 LD HL,(#E2D4) E510 23 INC HL E511 22D4E2 LD (#E2D4),HL E514 CDAFE2 CALL #E2AF E517 ED73DA5C LD (#5CDA),SP E51B 3AE95C LD A,(#5CE9) E51E 21A6E4 LD HL,#E4A6 E521 CD22E3 CALL #E322 E524 5E LD E,(HL) E525 23 INC HL E526 56 LD D,(HL) E527 0670 LD B,#70 E529 EB EX DE,HL E52A F9 LD SP,HL E52B 212640 LD HL,#4026 E52E C344E5 JP #E544 ------------------------------ E531 69 LD L,C E532 24 INC H E533 7C LD A,H E534 E607 AND #07 E536 C244E5 JP NZ,#E544 E539 7D LD A,L E53A C620 ADD A,#20 E53C 6F LD L,A E53D DA44E5 JP C,#E544 E540 7C LD A,H E541 D608 SUB #08 E543 67 LD H,A E544 4D LD C,L E545 D1 POP DE E546 73 LD (HL),E E547 2C INC L E548 72 LD (HL),D E549 2C INC L E54A D1 POP DE E54B 73 LD (HL),E E54C 2C INC L E54D 72 LD (HL),D E54E 2C INC L E54F D1 POP DE E550 73 LD (HL),E E551 2C INC L E552 72 LD (HL),D E553 2C INC L E554 D1 POP DE E555 73 LD (HL),E E556 2C INC L E557 72 LD (HL),D E558 2C INC L E559 D1 POP DE E55A 73 LD (HL),E E55B 2C INC L E55C 72 LD (HL),D E55D 2C INC L E55E D1 POP DE E55F 73 LD (HL),E E560 2C INC L E561 72 LD (HL),D E562 2C INC L E563 D1 POP DE E564 73 LD (HL),E E565 2C INC L E566 72 LD (HL),D E567 2C INC L E568 D1 POP DE E569 73 LD (HL),E E56A 2C INC L E56B 72 LD (HL),D E56C 2C INC L E56D D1 POP DE E56E 73 LD (HL),E E56F 2C INC L E570 72 LD (HL),D E571 2C INC L E572 D1 POP DE E573 73 LD (HL),E E574 2C INC L E575 72 LD (HL),D E576 D1 POP DE E577 D1 POP DE E578 10B7 DJNZ #E531 E57A ED7BDA5C LD SP,(#5CDA) E57E C9 RET ------------------------------ E57F ED73DA5C LD (#5CDA),SP E583 31BBF1 LD SP,#F1BB E586 0680 LD B,#80 E588 110000 LD DE,#0000 E58B D5 PUSH DE E58C D5 PUSH DE E58D D5 PUSH DE E58E D5 PUSH DE E58F D5 PUSH DE E590 D5 PUSH DE E591 D5 PUSH DE E592 D5 PUSH DE E593 D5 PUSH DE E594 D5 PUSH DE E595 D5 PUSH DE E596 D5 PUSH DE E597 10F2 DJNZ #E58B E599 ED7BDA5C LD SP,(#5CDA) E59D C9 RET ------------------------------ E59E D5 PUSH DE E59F 7D LD A,L E5A0 1F RRA E5A1 1F RRA E5A2 1F RRA E5A3 E61F AND #1F E5A5 F5 PUSH AF E5A6 6C LD L,H E5A7 2600 LD H,#00 E5A9 29 ADD HL,HL E5AA 29 ADD HL,HL E5AB 29 ADD HL,HL E5AC 5D LD E,L E5AD 54 LD D,H E5AE 29 ADD HL,HL E5AF 19 ADD HL,DE E5B0 F1 POP AF E5B1 5F LD E,A E5B2 1600 LD D,#00 E5B4 19 ADD HL,DE E5B5 11BBE5 LD DE,#E5BB E5B8 19 ADD HL,DE E5B9 D1 POP DE E5BA C9 RET 2 Процедура, выполняющая в иг- ре BUBBLER эффект, о котором го- ворилось выше, была разбросана по всей памяти, поэтому кодовые фрагменты несколько изменены, с целью объединения в компактный блок. Кроме того, для корректно- го возврата в Бейсик пришлось перед вызовом собственно проце- дуры, сохранить на стеке значе- ния всех регистров процессора, а также значение самого стека в специальной ячейке памяти (E2A9H). Все это происходит в вызывающей процедуре с адреса E283H. При работе процедуры (во вре- мя модификации спрайта) исполь- зуется практически вся область с адреса E5BBH до FFFFH, так что нежелательно располагать в этом месте какие-либо другие блоки кодов. Сама картинка-спрайт располо- жена с адреса F700H. Спрайт за- писан в специальном формате. Он имеет размеры: 20 знакомест в ширину и 12 знакомест в высоту. Как Вы видите, он перекрывает сегмент (1/3) экрана по высоте и не полностью использует экран по ширине. С целью экономии памяти и дополнительной защиты от не- санкционированного доступа (за- труднения внесения изменений) спрайт записан в специальном "непрерывном" формате, отличаю- щемся от сегментированной струк- туры экрана. При 8 байтах на ка- ждое знакоместо получается 20*12 *8=1920 байт. Вызов процедуры производится командой RANDOMIZE USR 57987. Для набора кодового блока (файл "bub1" CODE) Вы можете воспользоваться Бейсик-програм- мой: 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 57986,"bub1",57987,824 100 DATA 245,253,229,221,229,217,229,213, 197,217,229,213,197,237,115,169, 226,205,102,227,237,123,169,226, 193,209,225,217,193,209,225,217 110 DATA 221,225,253,225,241,201,000,000, 023,142,000,128,237,091,171,226, 042,173,226,126,198,005,071,058, 222,092,128,131,095,126,047,198 120 DATA 022,130,133,087,237,083,171,226, 035,124,230,159,103,034,173,226, 201,000,000,000,054,000,035,016, 251,201,219,254,047,230,031,201 130 DATA 237,115,216,092,049,000,091,001, 002,128,017,071,071,195,000,227, 237,115,216,092,049,000,088,001, 012,000,017,000,000,213,016,253 140 DATA 013,032,250,237,123,216,092,201, 203,060,203,060,203,060,203,060, 203,029,203,060,203,029,203,060, 203,029,124,198,088,103,201,133 150 DATA 111,208,036,201,000,000,000,017, 039,227,229,205,011,227,026,050, 068,227,198,030,047,050,076,227, 019,026,079,019,026,050,070,227 160 DATA 006,000,054,000,044,016,251,045, 017,000,255,025,013,032,241,225, 201,048,255,047,247,045,237,040, 211,034,178,027,142,019,099,010 170 DATA 051,000,000,033,020,014,034,039, 227,205,243,226,205,227,226,175, 050,220,092,050,221,092,060,050, 254,255,205,127,229,058,220,092 180 DATA 071,254,009,056,010,254,017,056, 004,254,024,056,002,237,068,230, 015,135,033,084,227,205,034,227, 078,035,094,121,179,032,026,217 190 DATA 058,254,255,060,230,001,050,254, 255,198,070,050,041,227,033,048, 119,205,042,227,217,024,002,024, 193,033,232,255,034,252,255,120 200 DATA 254,009,056,014,254,025,048,010, 033,024,000,034,252,255,121,237, 068,079,062,071,129,103,046,016, 123,217,095,022,000,106,098,217 210 DATA 205,158,229,017,000,247,024,036, 058,221,092,167,032,007,061,050, 221,092,205,097,228,205,204,228, 175,205,221,226,194,047,228,024 220 DATA 182,058,220,092,060,230,031,050, 220,092,024,220,014,096,006,020, 229,026,182,119,019,035,016,249, 225,013,040,229,217,124,025,188 230 DATA 217,040,235,121,237,075,252,255, 009,079,024,226,033,198,079,006, 020,205,215,226,033,205,240,006, 044,205,215,226,062,007,050,216 240 DATA 092,253,042,241,092,251,118,058, 216,092,254,119,243,200,253,042, 241,092,251,060,060,050,216,092, 205,135,228,195,074,228,062,016 250 DATA 050,233,092,062,120,050,216,092, 253,042,241,092,251,058,216,092, 243,254,008,200,253,042,241,092, 251,061,061,050,216,092,205,135 260 DATA 228,195,112,228,103,046,016,237, 115,218,092,205,158,229,118,243, 249,017,072,002,027,122,179,032, 251,058,216,092,198,135,047,071 270 DATA 195,043,229,189,229,213,229,237, 229,005,230,029,230,053,230,077, 230,101,230,125,230,149,230,173, 230,197,230,221,230,245,230,013 280 DATA 231,037,231,000,000,000,000,000, 000,058,212,226,230,007,032,058, 058,001,255,230,128,040,048,058, 199,228,167,040,045,058,000,255 290 DATA 061,062,000,032,034,058,198,228, 050,003,255,058,199,228,214,032, 071,058,203,228,230,240,176,050, 002,255,058,201,228,050,004,255 300 DATA 058,200,228,050,005,255,175,050, 199,228,042,212,226,035,034,212, 226,205,175,226,237,115,218,092, 058,233,092,033,166,228,205,034 310 DATA 227,094,035,086,006,112,235,249, 033,038,064,195,068,229,105,036, 124,230,007,194,068,229,125,198, 032,111,218,068,229,124,214,008 320 DATA 103,077,209,115,044,114,044,209, 115,044,114,044,209,115,044,114, 044,209,115,044,114,044,209,115, 044,114,044,209,115,044,114,044 330 DATA 209,115,044,114,044,209,115,044, 114,044,209,115,044,114,044,209, 115,044,114,209,209,016,183,237, 123,218,092,201,237,115,218,092 340 DATA 049,187,241,006,128,017,000,000, 213,213,213,213,213,213,213,213, 213,213,213,213,016,242,237,123, 218,092,201,213,125,031,031,031 350 DATA 230,031,245,108,038,000,041,041, 041,093,084,041,025,241,095,022, 000,025,017,187,229,025,209,201 Теперь о картинке-спрайте. Спрайт из игры BUBBLER занимает около 2К, поэтому не имеет смыс- ла приводить его в виде дампа для набора, тем более, что инте- рес представляет использование собственного материала. Однако Вы можете "вытащить" спрайт "BUBBLER" из игры, выполнив: SAVE "bub2"CODE 63232,1920. Вы можете подготовить свою картинку при помощи любого гра- фического редактора (например, ARTSTUDIO). Надо только распо- лагать изображение не по центру, как оно будет в программе, а сдвинутым в левый верхний угол экрана. Кроме того, надо пом- нить, что его размер должен быть 12 строк по вертикали и 20 зна- комест по горизонтали. Если Ва- ша картинка меньше по размерам, то надо учесть симметрию относи- тельно области 12х20. При рабо- те желательно пользоваться чер- ным фоном и белыми чернилами - так изображение будет выглядеть на экране, однако значение имеет только включенные или выключен- ные пикселы, информации о цвете в будущем спрайте не будет. После того, как изображение готово, надо закодировать спрайт в "непрерывный" формат. Для об- работки спрайта (двунаправлен- ного конвертирования, демонстра- ции эффекта и записи-загрузки спрайта и экрана) была созда- на специальная Бейсик-программа "BUB" (приведенная ниже). После автостарта со строки 2 грузятся файлы "bub1"CODE 57987,824 - это кодовая процедура, приведенная выше, и "bub2" CODE 63232,1920 - спрайт, заимствованный из прог- раммы BUBBLER. 1 GO TO 100 2 BORDER 1: CLEAR 57986: LOAD "bub1"CODE 3 LOAD "bub2"CODE 4 RUN 5 CLEAR : SAVE "BUB" LINE 2 : STOP 100 GO SUB 2000: INPUT ;: PRINT AT 14,1;"0 - DEMONSTRATION"; AT 15,1;"1 - CODING SPRITE"; AT 16,1;"2 - DECODING SPRITE"; AT 17,1;"3 - LOAD SCREEN$"; AT 18,1;"4 - SAVE SCREEN$"; AT 19,1;"5 - LOAD SPRITE"; AT 20,1;"6 - SAVE SPRITE": BEEP .1,20 120 PAUSE 0: LET I$=INKEY$: IF INKEY$<"0" OR INKEY$>"6" THEN G O TO 120 130 IF INKEY$="0" THEN BORDER 0: RANDOMIZE USR 57987: BORDER 1 : CLS : GO TO 100 140 IF INKEY$="1" OR INKEY$="2" THEN GO TO 500 150 IF i$="3" THEN LOAD ""CODE 16384,6912 160 IF i$="4" THEN INPUT "FILE NAME: ";f$: SAVE f$CODE 16384,69 12 170 IF i$="5" THEN LOAD ""CODE 63232,1920 180 IF i$="6" THEN INPUT "FILE NAME: ";f$: SAVE f$CODE 63232,19 20 190 GO TO 100 500 LET r=65132: LET c=0 510 PRINT #0; FLASH 1; " Please, wait... " 520 FOR m=0 TO 7 530 GO SUB 1000 540 NEXT m 550 LET r=63852: LET c=1 560 FOR m=0 TO 3 570 GO SUB 1000 580 NEXT m 599 GO TO 100 1000 FOR l=0 TO 7 1010 LET s=16384+256*l+32*m+2048 *c 1020 FOR i=0 TO 19 1030 IF I$="2" THEN POKE (s+i), PEEK (r+i) 1040 IF I$="1" THEN POKE (r+i), PEEK (s+i) 1050 NEXT i 1060 LET r=r-20 1070 NEXT l 1080 RETURN 2000 FOR a=0 TO 11: PRINT AT a,0 ; PAPER 6; OVER 1;" ": NEXT a 2010 FOR a=13 TO 21: PRINT AT a, 0;" ": NEXT a 2020 RETURN После запуска программы "BUB" Вы видите титульное меню. Нажав "3", Вы можете загру- зить заготовленную картинку-эк- ран с будущим спрайтом. Нажав "1", выполните кодирование кар- тинки в спрайт. Нажав "6", Вы сохраните полученный спрайт для последующего встраивания в свою программу. При нажатии "0" Вам будет продемонстрирован весь эф- фект так, как это будет в Вашей будущей программе. При нажатии "2", а затем "4", Вы имеете воз- можность декодировать спрайт и затем сохранить его для после- дующего редактирования его при помощи ARTSTUDIO. * * *
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября