Color Catcher/BASIC-Listing
Aus C64-Wiki
Zur Navigation springenZur Suche springen<< zurück zu Color Catcher
100 REM WWW.PLANET64.DE 110 REM WWW.DIENSTAGSTREFF.DE 120 REM MMC64 FIXED BY 8R0TK4$T3N 130 : 140 REM ------------------------------ 150 : 160 IF PEEK(12288)<>255 THEN LOAD"cc*",8,1 170 REM ------------------------------ 180 REM --- COLOR-CATCHER ------------ 190 REM ------------------------------ 200 REM (C) 27.08.2004 210 REM 220 SYS 58648:PRINT"{8}"; 230 V=53248 240 S=54272 250 GOTO 1100 260 : 270 REM ------------------------------ 280 REM --- SUB: LOGO LINKS OBEN 290 PRINT"{clear}{down} {ltred}c{ltblue}o{ltred}l{ltblue}o{ltred}r{ltblue}-{ltred}c{ltblue}a{ltred}t {ltblue}c{ltred}h{ltblue}e{ltred}r" 300 RETURN 310 : 320 REM ------------------------------ 330 REM --- SUB: LEBENS-ABZUG 340 POKE V+21,1 350 POKE 2040,SS+1 360 POKE S+4,17 370 POKE S2+1,30 380 POKE S2+4,129 390 FOR I=YS TO YS-30 STEP -2 400 : POKE V+1,I 410 : POKE S+1,I/4 420 NEXT 430 POKE S2+4,128 440 FOR I=YS-30 TO 255 STEP 2 450 : POKE V+1,I 460 : POKE S+1,I/4 470 NEXT 480 POKE S+4,16 490 POKE 2040,SS 500 POKE V+1,YS 510 : 520 LE=LE-1 530 PRINT LE$;LE; 540 IF LE<=0 THEN MO=1:RETURN 550 REM GEGNER WIEDER NACH OBEN UND NOCHMAL 560 GY=0:POKE V+3,GY 570 POKE V+2,32+RND(1)*130:REM NEUE GEGNER-X-KOORD. 580 POKE V+21,3 590 K=PEEK(V+30) 600 RETURN 610 : 620 REM ------------------------------ 630 REM --- SUB: WEITER IM LEVEL 640 REM FARBE STIMMT, ALSO WEITER 650 POKE V+21,1 660 POKE S1+4,33 670 FOR I=1 TO 3 680 : POKE V+37,1:POKE V+39,1 690 : POKE S1+1,10+I*20 700 : FOR P=1 TO 30:NEXT 710 : POKE V+37,0:POKE V+39,0 720 : POKE S1+1,100-I*10 730 : FOR P=1 TO 50:NEXT 740 NEXT 750 POKE S1+4,32 760 POKE V+37,F(F,1):POKE V+39,F(F,2) 770 PU=PU+20+L*5 780 PRINT PU$;PU; 790 L2=L2-1 800 IF L2>0 THEN 880 810 L2=5+INT(L/2) 820 L=L+1 830 IF L>9 THEN MO=2:RETURN 840 POKE 2041,SG+L/2 850 PRINT L$;L; 860 : 870 REM GEGNER NEU SETZEN 880 GG=5+L:REM NEUE GEGNER-GESCHW. 890 POKE V+2,32+RND(1)*160:REM NEUE GEGNER-X-KOORD. 900 GY=0 910 POKE V+3,GY 920 GF=INT(RND(1)*2+1):REM NEUE GEGNER-FARBE 930 R=INT(RND(1)*2+1) 940 POKE V+40,F(GF,R) 950 POKE V+21,3 960 K=PEEK(V+30) 970 RETURN 980 : 990 REM ------------------------------ 1000 REM --- SUB: DROEHN-SOUND AN 1010 POKE S1, 0:POKE S1+1,10 1020 POKE S2,20:POKE S2+1,10 1030 POKE S1+4,17:POKE S2+4,17 1040 RETURN 1050 : 1060 REM ------------------------------ 1070 REM ------------------------------ 1080 REM ------------------------------ 1090 REM --- VARIABLEN UND KONSTANTEN 1100 POKE V+32,0 1110 POKE V+17,11 1120 REM SPIELER-FARBEN 1130 DIM F(2,2):REM FARBEN(MODE,UNTERFARBE) 1140 READ F:F(1,1)=F 1150 READ F:F(1,2)=F 1160 READ F:F(2,1)=F 1170 READ F:F(2,2)=F 1180 DATA 7, 13:REM FARBEN TYP 1 1190 DATA 10, 14:REM FARBEN TYP 2 1200 B$="{down*2}{left*11}" 1210 BS$=B$+"{left}{blue}{219}{192}{192}{192}{192}{192}{192}{192}{192}{192}{192}"+CHR$(20)+"{219}{left}{inst}{192}" 1220 PU$="{home}{down*12}{left*8}{ltgreen}" 1230 L$="{home}{down*18}{left*7}{ltgreen}" 1240 LE$="{home}{down*24}{left*7}{ltgreen}" 1250 SB=12288:REM SPRITE-BASIS 1260 SS=SB/64 1270 SG=SB/64+2:REM SPRITE-GEGNER-OFFSET 1280 YS=228:REM Y-START-KOORD. SPIELER 1290 GS=8:REM GESCHWINDIKEIT SPIELER 1300 REM SINUS-TABELLE (30-194) 1310 SM=40:DIM SI(SM) 1320 FOR I=0 TO SM 1330 : SI(I)=INT(30+82+82*SIN(I/SM*2*{255})) 1340 NEXT 1350 PL=0:REM LETZTE PUNKTE 1360 PH=0:REM HIGHSCORE (VON HEUTE) 1370 : 1380 REM ------------------------------ 1390 REM --- SOUND-INIT. 1400 S1=S:S2=S1+7:S3=S1+14 1410 POKE S1+5,0:POKE S1+6,15*16+5 1420 POKE S2+5,0:POKE S2+6,15*16+5 1430 FOR I=0 TO 2 1440 : POKE S+I*7+4,8 1450 NEXT 1460 POKE S+24,15 1470 : 1480 : 1490 : 1500 : 1510 : 1520 REM ------------------------------ 1530 REM --- TITEL/MENUE 1540 POKE V+17,11 1550 POKE V+33,5 1560 PRINT"{green}{clear}" 1570 PRINT" {brown}{rvson}{183}{183}{183}{rvsoff} {rvson}{183}{183}{183}{rvsoff} {rvson}{183}{rvsoff}{space*3} {rvson}{183}{183}{183}{rvsoff} {rvson}{183}{183}{183}" 1580 PRINT" {blue}{rvson}{183}{rvsoff}{space*3}{rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {space*3}{rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}" 1590 PRINT" {purple}{rvson}{183}{rvsoff}{space*3}{rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {space*3}{rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}{183}{183}{rvsoff} {192}" 1600 PRINT" {orange}{rvson}{183}{rvsoff}{space*3}{rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {space*3}{rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}{183}" 1610 PRINT" {red}{rvson}{183}{183}{183}{rvsoff} {rvson}{183}{183}{183}{rvsoff} {rvson}{183}{183}{183}{rvsoff} {rvson}{183}{183}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}" 1620 PRINT 1630 PRINT TAB(11);"{red}{rvson}{183}{183}{183}{rvsoff} {rvson}{183}{183}{183}{rvsoff} {rvson}{183}{183}{183} {rvsoff} {rvson}{183}{183}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}{183}{183} {rvsoff} {rvson}{183}{183}{183}" 1640 PRINT TAB(11);"{orange}{rvson}{183}{rvsoff}{space*3}{rvson}{183}{rvsoff} {rvson}{183}{rvsoff}{space*2} {rvson}{183}{rvsoff}{space*2}{rvson}{183}{rvsoff}{space*3}{rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson} {183}{rvsoff}{space*3}{rvson}{183}{rvsoff} {rvson}{183}" 1650 PRINT TAB(11);"{purple}{rvson}{183}{rvsoff}{space*3}{rvson}{183}{183}{183}{rvsoff}{space*2}{rvson}{183} {rvsoff}{space*2}{rvson}{183}{rvsoff}{space*3}{rvson}{183}{183}{183}{rvsoff} {rvson}{183}{183}{rvsoff} {space*2}{rvson}{183}{183}{183}" 1660 PRINT TAB(11);"{blue}{rvson}{183}{rvsoff}{space*3}{rvson}{183}{rvsoff} {rvson}{183}{rvsoff}{space*2}{rvson} {183}{rvsoff}{space*2}{rvson}{183}{rvsoff}{space*3}{rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183} {rvsoff}{space*3}{rvson}{183}{183}" 1670 PRINT TAB(11);"{brown}{rvson}{183}{183}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}{rvsoff}{space*2} {rvson}{183}{rvsoff}{space*2}{rvson}{183}{183}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson} {183}{183}{183}{rvsoff} {rvson}{183}{rvsoff} {rvson}{183}" 1680 PRINT"{down*2}{space*3}{red}{209} {white}live von der willowparty 2004 {red}{209}" 1690 PRINT"{down*2}{space*5}{black}(c) 27/28.08.2004 by prof. {255}{up}2{down}" 1691 PRINT"{space*2}{ltblue}one-filed/mmc64 fixed by 8r0tk4$t3n" 1700 PRINT"{down}{space*6}{yellow}heutiger rekord:{ltgreen}";PH 1710 PRINT"{space*6}{yellow}letzter punktestand:{ltgreen}";PL 1720 PRINT"{down*2}";TAB(11);"{yellow}<{white}feuer{yellow}> {ltgreen}spielstart" 1730 POKE V+32,0 1740 POKE V+17,27 1750 P=500 1760 GET E$:J=PEEK(56320) 1770 IF E$="" THEN SYS 65126 1780 IF (J AND 16)=0 THEN 1840 1790 P=P-1 1800 IF P>0 THEN 1760 1810 : 1820 REM ------------------------------ 1830 REM --- ANLEITUNGS-BILDSCHIRM 1840 POKE V+17,11 1850 POKE V+32,4 1860 POKE V+33,15 1870 GOSUB 290 1880 PRINT"{down} {red}rette die welt!" 1890 PRINT"{down} boese leute haben alle farbe der welt" 1900 PRINT" einfach gestohlen." 1910 PRINT" die farbe wurde aber wiedergefunden." 1920 PRINT" die boesen transportieren sie weg." 1930 PRINT"{down} mit deiner rettungskapsel musst du" 1940 PRINT" alle farbpartikel wieder einfangen." 1950 PRINT" achte jedoch darauf, die richtige" 1960 PRINT" einsammelfarbe aktiviert zu haben." 1970 PRINT"{down} {black}oben: {grey1}farbkombi rot/blau waehlen" 1980 PRINT" {black}unten: {grey1}farbkombi gelb/gruen waehlen" 1990 PRINT"{down} {black}links/rechts: {grey1}rettungskapsel bewegen" 2000 PRINT"{down} {red}viel erfolg!!!" 2010 PRINT"{down*2} {yellow}<{white}feuer{yellow}> {green}spielstart" 2020 POKE V+17,27 2030 P=500 2040 J=PEEK(56320) 2050 IF (J AND 16)=0 THEN 2120 2060 P=P-1 2070 IF P<=0 THEN 1540 2080 GOTO 2040 2090 : 2100 REM ------------------------------ 2110 REM --- SPIEL-BILDSCHIRM 2120 POKE V+17,11 2130 POKE V+32,6 2140 POKE V+33,0 2150 PRINT"{black}{clear}"; 2160 FOR I=1 TO 25 2170 : PRINT"{blue}{179}{grey1}"; 2180 : FOR J=1 TO I 2190 : PRINT"{219}"; 2200 : NEXT 2210 : PRINT"{grey2}"; 2220 : FOR J=0 TO 25-I 2230 : PRINT"{219}"; 2240 : NEXT 2250 PRINT"{blue}{171}{179}{space*9}{171}{left}{inst} "; 2260 IF I<25 THEN PRINT 2270 NEXT 2280 : 2290 PRINT"{home}";BS$ 2300 PRINT B$;" {ltred}c{ltblue}o{ltred}l{ltblue}o{ltred}r{ltblue}-" 2310 PRINT B$;"{space*2}{ltred}c{ltblue}a{ltred}t{ltblue}c{ltred}h{ltblue}e{ltred}r" 2320 PRINT BS$ 2330 PRINT B$;"{space*2}{yellow}punkte" 2340 PRINT B$;"{space*5}{ltgreen}0" 2350 PRINT BS$ 2360 PRINT B$;"{space*3}{yellow}level" 2370 PRINT B$;"{space*5}{ltgreen}1" 2380 PRINT BS$ 2390 PRINT B$;"{space*3}{yellow}leben" 2400 PRINT B$;"{space*5}{ltgreen}5{home}" 2410 POKE V+17,27 2420 : 2430 REM ------------------------------ 2440 REM --- SPRITES INITIALISIEREN 2450 POKE V+38,15 2460 POKE V+28,3:REM MC AN 2470 POKE V+29,2:POKE V+23,2:REM GEGNER: EXPAND X,Y 2480 X=124:REM X-START SPIELER 2490 POKE V+1,YS:REM Y-KOORD. SPIELER 2500 POKE 2040,SS 2510 POKE 2041,SG 2520 POKE V+2,124:REM X-START GEGNER 2530 GY=0:POKE V+3,GY:REM Y-START GEGNER 2540 GF=INT(RND(1)*2+1):REM GEGNER-FARBE FESTLEGEN 2550 POKE V+40,F(GF,1):REM GEGNER-FARBE SETZEN 2560 POKE V+21,3 2570 K=PEEK(V+30):REM SPR-SPR-KOLL. INIT. 2580 REM ------------------------------ 2590 REM --- SPIEL-INITS 2600 L=1:REM LEVEL 2610 PU=0:REM PUNKTE 2620 LE=5:REM LEBEN 2630 F=1:REM STARTFARBE SPIELER 2640 POKE V+37,F(F,1):POKE V+39,F(F,2) 2650 L2=5:REM PRO LEVEL INTERNER ZAEHLER 2660 MO=0:REM MODUS-INIT. 2670 SZ=0:REM SIN-ZAEHLER INIT. 2680 GG=5:REM GESCHW. GEGNER 2690 : 2700 GOSUB 1010:REM DROEHN AN 2710 : 2720 REM ------------------------------ 2730 REM --- SPIEL-SCHLEIFE 2740 J=PEEK(56320) 2750 IF (J AND 3)<>3 THEN F=(J AND 3):POKE V+37,F(F,1):POKE V+39,F(F,2) 2760 IF (J AND 4)=0 AND X>30 THEN X=X-GS 2770 IF (J AND 8)=0 AND X<214 THEN X=X+GS 2780 POKE V,X 2790 POKE V+2,SI(SZ) 2800 SZ=SZ+1:IF SZ>SM THEN SZ=0 2810 POKE V+3,GY 2820 GY=GY+GG:IF GY>255 THEN 2930 2830 K=(PEEK(V+30) AND 3) 2840 IF K<>3 THEN 2740 2850 REM KOLLISION, ABER FARBE OK? 2860 IF F<>GF THEN 2930 2870 REM NAECHSTER LEVEL 2880 GOSUB 650 2890 IF MO<>0 THEN 3190 2900 GOSUB 1010:REM DROEHN WIEDER AN 2910 GOTO 2740 2920 REM LEBENS-ABZUG 2930 GOSUB 340:IF MO<>0 THEN 3000 2940 GOSUB 1010:REM DROEHN WIEDER AN 2950 GOTO 2740 2960 : 2970 : 2980 REM ------------------------------ 2990 REM --- GAME OVER 3000 POKE V+17,11 3010 POKE V+21,0 3020 POKE V+32,11 3030 GOSUB 290:REM LOGO 3040 PRINT"{down*2}{space*2}{white}oh nein - die welt ist verloren!" 3050 PRINT"{down}{space*4}auf ewig alles grau in grau..." 3060 PRINT"{down}{space*5}{yellow}erreichte punkte:{ltgreen}";PU 3070 IF PU>PH THEN PRINT"{down}{space*7}{ltgreen}neuer highscore!":PH=PU 3080 PL=PU 3090 PRINT"{down*2}{space*2}{yellow}<{white}feuer{yellow}>" 3100 POKE V+17,27 3110 P=250 3120 J=PEEK(56320) 3130 P=P-1 3140 IF (J AND 16)<>0 AND P>0 THEN 3120 3150 GOTO 1540:REM TITEL/MENUE 3160 : 3170 REM ------------------------------ 3180 REM --- ALLE LEVEL GESCHAFFT 3190 POKE V+17,11 3200 POKE V+21,0 3210 POKE S1+4,16:POKE S2+4,16 3220 GOSUB 290:REM LOGO 3230 PRINT"{down*2}{space*2}{white}super!" 3240 PRINT"{down} du hast der welt" 3250 PRINT" die farben zurueckgebracht!" 3260 PRINT"{down} fuer deine rettung wird man dir" 3270 PRINT" ewig dankbar sein!" 3280 PRINT"{down} als erste anerkennung erhaelst du" 3290 PRINT" fuer die uebriggeliebenen leben" 3300 PRINT"{space*2}je 99 bonuspunkte!" 3310 PRINT"{down} das ergibt also";LE;"x";" 99 =";LE*99 3320 PU=PU+LE*99 3330 GOTO 3060 3340 REM ------------------------------
<< zurück zu Color Catcher