Speedy
Jogo estilo Tron, onde vence quem não tocar nas bordas nem nos rastros das motos.
Teste o programa no WebMSX – The Online MSX Emulator
Para dois jogadores, pode ser jogado pelo teclado (jogador 1) e um joystick (jogador 2), ou dois joysticks.
Autor: Courbouis Software
Ano: 1986
Contribuição: Paulo Maluf
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 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 |
10 ' (C) 1986 BY COURBOIS SOFTWARE 11 ' FAZANTLAAN 61-63 12 ' 6641 XW BEUNINGEN 13 ' 20 DEFINT A-Z:DEFUSR=&H90 100 DATA 0000001110000000 110 DATA 0000010001000000 120 DATA 0000101110100000 130 DATA 0000101110100000 140 DATA 0000101110100000 150 DATA 0000101110100000 160 DATA 0000010001000000 170 DATA 0000011011000000 180 DATA 0000011011000000 190 DATA 0000011111000000 200 DATA 0000100000100000 210 DATA 0000101110100000 220 DATA 0000100000100000 230 DATA 0000101110100000 240 DATA 0000110001100000 250 DATA 0000000000000000 260 ' 300 DATA 0000000000000000 310 DATA 0000000000000000 320 DATA 0000000000000000 330 DATA 0111110000111100 340 DATA 0100001111000010 350 DATA 0010101110111101 360 DATA 0010101000111101 370 DATA 0010101110111101 380 DATA 0100001111000010 390 DATA 0111110000111100 400 DATA 0000000000000000 410 DATA 0000000000000000 420 DATA 0000000000000000 430 DATA 0000000000000000 440 DATA 0000000000000000 450 DATA 0000000000000000 499 ' 500 SCREEN 3,2,0:COLOR 0,4,4:CLS:OPEN"GRP:" AS #1 510 LINE(0,64)-STEP(255,64),1,BF 520 PRESET(10,84),1:PRINT#1," SPEEDY " 530 PLAY"L8O5BAGFEDC","O4L8BAGFEDC" 599 ' 600 GOSUB 9000:SPRITE$(1)=A$+B$ 610 C$="":D$="":FOR X=16 TO 1 STEP -1 620 C$=C$+MID$(A$,X,1) 630 D$=D$+MID$(B$,X,1) 640 NEXT X 650 SPRITE$(2)=C$+D$ 660 GOSUB 9000:SPRITE$(3)=A$+B$ 670 RESTORE 300:F=1:GOSUB 9000:SPRITE$(4)=A$+B$ 680 FOR X=0 TO 255 STEP 4 690 LINE(X,0)-STEP(0,191),4:NEXT X 799 ' 800 SCREEN 2:COLOR 14,1,4:CLS:GOSUB 9700 820 COLOR 15:PRESET(40,40):PRINT#1,"SPEEDY 1 SPEEDY 2" 830 COLOR 1:LINE(24,56)-STEP(208,72),6,BF 840 PRESET(40,72):PRINT#1,"KEYBOARD F1 JOYSTICK" 860 PRESET(40,104):PRINT#1,"JOYSTICK F2 JOYSTICK" 880 ON KEY GOSUB 900,920:KEY(1) ON:KEY(2) ON 890 GOTO 890 900 BEEP:SA=0:SB=1:RETURN 1000 920 BEEP:SA=1:SB=2:RETURN 1000 999 ' 1000 KEY(1)OFF:KEY(2)OFF:KEY(3)OFF:PA=0:PB=0:TA=3:TB=TA:MA=1:V=4:S=14 1010 X=USR(0):FOR X=0 TO 95 STEP 3 1020 LINE(0,X)-STEP(255,3),1,BF 1030 LINE(0,191-X)-STEP(255,-3),1,BF 1040 NEXT X:PUTSPRITE 0,(-31,-31):PUTSPRITE 1,(-31,-31):GOSUB 9700 1045 IF TA+TB=0 THEN GOSUB 9400 1050 IF MA>3 THEN V=8:S=13:IF MA>6 THEN 1200 1055 COLOR 1:LINE(24,56)-STEP(208,72),6,BF 1060 PRESET(40,64):PRINT#1,"MANCHE:";MA;" SCORE" 1070 PRESET(32,88):PRINT#1,"SPEEDY 1: ";PA 1080 PRESET(32,106):PRINT#1,"SPEEDY 2: ";PB 1100 IF TA<>0 THEN FOR X=1 TO TA:PUTSPRITE X,(80+X*24,84),14,3:NEXT X 1110 IF TB<>0 THEN FOR X=1 TO TB:PUTSPRITE X+3,(80+X*24,102),15,4:NEXT X 1120 IF TA=0 THEN GOSUB 9200 1130 IF TB=0 THEN GOSUB 9300 1140 COLOR 15:PRESET(88,150):PRINT#1,"GET READY" 1150 A$=INKEY$:IF A$<>"" THEN 1150 1160 FOR X=1 TO 1000:A$=INKEY$:IF A$<>" " THEN NEXT X 1170 GOTO 2000 1200 COLOR 15:PRESET(92,150):PRINT#1,"GAME OVER" 1210 A$=INKEY$:IF A$<>"" THEN 1210 1220 A$=INKEY$:IF A$="" THEN 1220 ELSE RUN 1999 ' 2000 BEEP:XA=16:XB=216:YA=80:YB=YA:JA=3:JB=7:DA=3:DB=4 2005 COLOR 1,1,1:SCREEN 2:LINE(0,0)-STEP(255,191),12,B 2006 SOUND 7,104:SOUND 8,8:SOUND 1,S 2010 PA=PA+1:ON JA GOSUB 3000,3000,3020,3020,3040,3040,3060,3060 2020 PB=PB+1:ON JB GOSUB 4000,4000,4020,4020,4040,4040,4060,4060 2030 X=STICK(SA):IF X<>0 AND X<>JA THEN JA=X 2040 X=STICK(SB):IF X<>0 AND X<>JB THEN JB=X 2050 GOTO 2010 2999 ' 3000 YA=YA-V:DA=1:GOSUB 3100:LINE(XA+6,YA+7)-STEP(2,V),4,BF 3010 IF POINT(XA+7,YA+6)<>1 THEN 3500 ELSE RETURN 3020 XA=XA+V:DA=3:GOSUB 3100:LINE(XA+7,YA+6)-STEP(-V,2),4,BF 3030 IF POINT(XA+8,YA+7)<>1 THEN 3500 ELSE RETURN 3040 YA=YA+V:DA=2:GOSUB 3100:LINE(XA+6,YA+7)-STEP(2,-V),4,BF 3050 IF POINT(XA+7,YA+8)<>1 THEN 3500 ELSE RETURN 3060 XA=XA-V:DA=4:GOSUB 3100:LINE(XA+7,YA+6)-STEP(V,2),4,BF 3070 IF POINT(XA+6,YA+7)<>1 THEN 3500 ELSE RETURN 3100 PUTSPRITE 0,(XA,YA),14,DA:RETURN 3499 ' 3500 TA=TA-1:PB=PB+30:A=USR(0) 3510 FOR A=1 TO 2:FOR B=1 TO 4 3520 PUTSPRITE 0,(XA,YA),10+B,B:COLOR,,RND(1)*15 3530 GOSUB 9600:NEXT B,A:COLOR,,1:RETURN 1010 3999 ' 4000 YB=YB-V:DB=1:GOSUB 4100:LINE(XB+6,YB+7)-STEP(2,V),6,BF 4010 IF POINT(XB+7,YB+6)<>1 THEN 4500 ELSE RETURN 4020 XB=XB+V:DB=3:GOSUB 4100:LINE(XB+7,YB+6)-STEP(-V,2),6,BF 4030 IF POINT(XB+8,YB+7)<>1 THEN 4500 ELSE RETURN 4040 YB=YB+V:DB=2:GOSUB 4100:LINE(XB+6,YB+7)-STEP(2,-V),6,BF 4050 IF POINT(XB+7,YB+8)<>1 THEN 4500 ELSE RETURN 4060 XB=XB-V:DB=4:GOSUB 4100:LINE(XB+7,YB+6)-STEP(V,2),6,BF 4070 IF POINT(XB+6,YB+7)<>1 THEN 4500 ELSE RETURN 4100 PUTSPRITE 1,(XB,YB),15,DB:RETURN 4499 ' 4500 TB=TB-1:PA=PA+30:A=USR(0) 4510 FOR A=1 TO 2:FOR B=1 TO 4 4520 PUTSPRITE 1,(XB,YB),6+B,B:COLOR,,RND(1)*15 4530 GOSUB 9600:NEXT B,A:COLOR,,1:RETURN 1010 8999 ' 9000 A$="":B$="":FOR X=1 TO 16:READ X$ 9010 IF F THEN GOSUB 9070 9020 XH=VAL("&B"+LEFT$(X$,8)) 9030 XL=VAL("&B"+RIGHT$(X$,8)) 9040 A$=A$+CHR$(XH):B$=B$+CHR$(XL) 9050 NEXT X:RETURN 9060 ' 9070 FOR Y=1 TO 8:C$=MID$(X$,Y,1) 9080 MID$(X$,Y,1)=MID$(X$,17-Y,1) 9090 MID$(X$,17-Y,1)=C$ 9100 NEXT Y:RETURN 9199 ' 9200 FOR X=TB TO 1 STEP-1:PB=PB+100:LINE(168,106)-STEP(40,8),6,BF 9210 PRESET(168,106),6:PRINT#1,PB:PUTSPRITE X+3,(-31,-31):GOSUB 9500:NEXT X:GOTO 9400 9299 ' 9300 FOR X=TA TO 1 STEP-1:PA=PA+100:LINE(168,88)-STEP(40,8),6,BF 9310 PRESET(168,88),6:PRINT#1,PA:PUTSPRITE X,(-31,-31):GOSUB 9500:NEXT X 9399 ' 9400 TA=3:TB=3:MA=MA+1:RETURN 1050 9499 ' 9500 SOUND 7,254:SOUND 8,10:SOUND 1,0 9510 FOR Y=255 TO 1 STEP -5:SOUND 0,Y:NEXT Y 9520 FOR Y=1 TO 100:NEXT Y:Y=USR(0):RETURN 9599 ' 9600 SOUND 7,254:SOUND 8,10:SOUND 1,1 9610 FOR Y=128 TO 1 STEP -8:SOUND 0,Y:NEXT Y:Y=USR(0):RETURN 9699 ' 9700 COLOR 4,,4:PRESET(96,16):PRINT#1," SPEEDY ":PRESET(95,16):PRINT#1," SPEEDY " 9710 RETURN |