Frigger
Era uma vez, na Austrália, um pequeno canguru chamado Frigger.
Teste o programa no WebMSX – The Online MSX Emulator
Frigger morava perto de um rio caudaloso, cheio de troncos flutuantes. Costumava ficar sentado do lado de fora da toca, contemplando a bela paisagem que o cercava. Um dia, porém, tudo mudou. Os humanos chegaram e construíram uma auto-estrada do outro lado do rio. A partir desse dia, sempre que Frigger e os amigos saem em busca de comida, têm que atravessar a estrada (evitando os carros) e o rio (pulando de tronco em tronco) para chegar em casa.
Só você, caro leitor, pode ajudar Frigger e seus amigos a voltarem para casa em segurança. Use o joystick ou as teclas de controle do cursor para guiar os cangurus e será recompensado com muitos pontos!
Fonte: Livro de Jogos em MSX
Editora: Lutécia
Autor: Jim Gregory (livro) – Andy (programa)
Ano: 1985
Digitação: Wilson e Willian Pilon – MSX Typer
Código fonte
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
1000 REM <<<< FRIGGER - ANDY/BOOTSY >>>> 1010 SCREEN 1,0,0:CLEAR 1800 1020 COLOR 15,0,0:KEY OFF 1030 WIDTH 32:HS%=5:GOSUB 1670 1040 KA%=3:SC%=0 1050 GOSUB 1600:GOSUB 1540 1060 KX%=128:KY%=160:K%=1 1070 PUT SPRITE 0,(KX%,KY%),15,K% 1080 REM <<<< LOOP PRINCIPAL >>>> 1090 GOSUB 1350:IF (K% AND 1)=0 THEN GOSUB 1480:GOTO 1090 1100 CH%=VPEEK(6144+(KX%+4)/8+INT((KY%+4)/8)*32) 1110 IF CH%<>32 AND CH%<>240 AND (CH%<208 OR CH%>210) THEN 1170 1120 IF KY%=16 THEN 1290 1130 GOSUB 1310:IF ST% THEN GOSUB 1470 1140 IF CH%>207 AND CH%<211 THEN KX%=KX%+(8 AND KY%=32)-(8 AND KY%=48):GOTO 1070 1150 GOTO 1090 1160 REM <<<< PERDE UMA VIDA >>>> 1170 KA%=KA%-1:PLAY "o1l64bagfedc" 1180 IF KA% THEN GOTO 1050 1190 PUT SPRITE 0,(0,208),0,0 1200 LOCATE 2,14 1210 PRINT "Suas vidas acabaram !" 1220 LOCATE 2,16 1230 PRINT "Aperte o botao ou a barra de" 1240 LOCATE 2,18 1250 PRINT "espaco para comecar de novo" 1260 GOSUB 1310:IF TG%=0 THEN 1260 1270 GOTO 1040 1280 REM <<<< CONSEGUIU >>>> 1290 PLAY "o1l64cdefgabo2cdefgabo3cdefgabo4cdefgab":SC%=SC%+1:GOTO 1050 1300 REM <<<< ENTRADA DE DADOS >>>> 1310 FOR I%=0 TO 2:ST%=STICK(I%):TG%=STRIG(I%) 1320 IF ST% OR TG% THEN I%=2 1330 NEXT I%:RETURN 1340 REM <<<< MOVIMENTO >>>> 1350 L2$=RIGHT$(L2$,1)+LEFT$(L2$,31) 1360 L1$=RIGHT$(L1$,31)+LEFT$(L1$,1) 1370 C3$=RIGHT$(C3$,1)+LEFT$(C3$,31) 1380 C2$=RIGHT$(C2$,31)+LEFT$(C2$,1) 1390 C1$=RIGHT$(C1$,1)+LEFT$(C1$,31) 1400 LOCATE 0,4:PRINT L2$; 1410 LOCATE 0,6:PRINT L1$; 1420 LOCATE 0,14:PRINT C3$; 1430 LOCATE 0,16:PRINT C2$; 1440 LOCATE 0,18:PRINT C1$; 1450 RETURN 1460 REM <<<< MOVIMENTO DO CANGURU >>>> 1470 K%=ST%:M%=ST% 1480 K%=K% XOR 1 1490 KX%=KX%+(8 AND M%=3)-(8 AND M%=7) 1500 KY%=KY%+(8 AND M%=5)-(8 AND M%=1) 1510 PUT SPRITE 0,(KX%,KY%),15,K% 1520 RETURN 1530 REM <<<< CONTAGEM, ETC. >>>> 1540 IF SC%>HS% THEN HS%=SC% 1550 LOCATE 7,0:PRINT SC% 1560 LOCATE 16,0:PRINT HS% 1570 LOCATE 27,0:PRINT KA% 1580 RETURN 1590 REM <<<< TELA >>>> 1600 LOCATE 0,1 1610 PRINT B1$;RV$;B2$ 1620 LOCATE 0,20:PRINT B3$;B4$; 1630 LOCATE 1,0 1640 PRINT " Ptos: Rec: Vidas:" 1650 GOTO 1400 1660 REM <<<< FORMAS >>>> 1670 C%=192 1680 READ I%:IF I%<0 THEN 1750 1690 FOR J%=0 TO 7:VPOKE C%*8+J%,I% 1700 READ I%:NEXT J% 1710 VPOKE 8192+C%/8,I% 1720 C%=C%+1 1730 IF C%=194 OR C%=203 OR C%=211 OR C%=217 OR C%=226 OR C%=233 OR C%=241 THEN C%=(C%+7) AND 248 1740 GOTO 1680 1750 FOR I%=0 TO 7 1760 S$="":FOR J%=0 TO 7:READ C% 1770 S$=S$+CHR$(C%):NEXT J% 1780 SPRITE$(I%)=S$:NEXT I% 1790 CR$=CHR$(192)+CHR$(193) 1800 LY$=CHR$(202)+CHR$(201)+CHR$(200) 1810 BK$=CHR$(224)+CHR$(225) 1820 LG$=CHR$(208)+CHR$(209)+CHR$(210) 1830 C1$=CR$+CR$+SPACE$(8)+CR$+SPACE$(4)+CR$+CR$+CR$+SPACE$(2)+CR$+SPACE$(2)+CR$ 1840 C2$=LY$+SPACE$(12)+LY$+SPACE$(3)+LY$+LY$+SPACE$(5) 1850 C3$=BK$+BK$+SPACE$(8)+BK$+BK$+BK$+BK$+BK$+SPACE$(8)+BK$ 1860 L1$=LG$+STRING$(3,CHR$(248))+LG$+STRING$(3,CHR$(248))+STRING$(3,CHR$(216))+STRING$(2,CHR$(248))+LG$+STRING$(3,CHR$(248))+LG$+STRING$(2,CHR$(248))+STRING$(2,CHR$(216))+STRING$(2,CHR$(248)) 1870 L2$=LG$+STRING$(3,CHR$(248))+LG$+STRING$(3,CHR$(248))+STRING$(3,CHR$(216))+STRING$(3,CHR$(248))+LG$+STRING$(3,CHR$(248))+STRING$(4,CHR$(216))+STRING$(2,CHR$(248)) 1880 RV$=STRING$(160,CHR$(248)) 1890 B1$=STRING$(32,CHR$(232)) 1900 FOR I%=1 TO 16 STEP 4 1910 B1$=B1$+STRING$(4,CHR$(232))+SPACE$(1)+STRING$(3,CHR$(232)) 1920 NEXT I% 1930 BN$=LEFT$(BN$,63):BN$=BN$+CHR$(232) 1940 B2$=STRING$(160,CHR$(240)) 1950 B3$=STRING$(64,CHR$(240)) 1960 B4$=STRING$(32,CHR$(232)) 1970 RETURN 1980 REM <<<< DADOS DAS FORMAS >>>> 1990 DATA 7,28,56,127,219,231,36,24,208 2000 DATA 128,64,32,252,218,229,38,24,208 2010 DATA 0,0,0,0,255,255,60,24,96 2020 DATA 64,64,64,64,255,255,128,0,96 2030 DATA 7,9,9,63,127,127,7,3,96 2040 DATA 191,109,182,109,218,125,171,95,196 2050 DATA 255,181,235,182,47,254,93,190,196 2060 DATA 250,213,190,91,182,109,182,253,196 2070 DATA 0,0,67,172,240,192,255,0,20 2080 DATA 0,1,51,14,55,72,72,48,176 2090 DATA 96,200,244,12,154,164,228,24,176 2100 DATA 255,255,255,255,255,255,255,255,192 2110 DATA 0,127,127,127,127,127,127,127,160 2120 DATA 170,85,170,85,170,85,170,85,84 2130 DATA -1 2140 REM <<<< DADOS DOS SPRITES >>>> 2150 DATA 36,24,90,60,24,60,60,219 2160 DATA 36,24,24,60,90,189,126,36 2170 DATA 8,24,28,24,60,61,58,220 2180 DATA 4,12,14,24,60,188,184,94 2190 DATA 219,60,60,24,60,90,24,36 2200 DATA 36,126,189,90,60,24,24,36 2210 DATA 16,24,56,24,60,188,92,59 2220 DATA 32,48,112,24,60,61,29,122 |