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