Files
2023-03-13 08:36:51 +00:00

66 lines
1.5 KiB
Plaintext

PROGRAM:Racer
01 'init game
02 COLOR 7,1:CLS :BOX 3,3,42,56
03 COLOR 7,0:CBOX 2,2,20,27
04 DATA 0,2,-1,-1,2,2,20,21,22,23
05 DATA 9,133,133,133,133
06 X=13:S=15:Q=0:C=0:D=0:T=$88
07 B=0:E=0:P=0:V=6:GOSUB 60
08 DATA 25,39,"--Game Over--",0
09 G=0:'EEPROM Highscore adress
10
11
12 Q=Q+1:IF Q=5:D=1-RND(3):Q=0
13 X=X+KEY(6):LIMIT X,4,24:O=S
14
15 S=S+D:LIMIT S,7,22:COLOR 4,0
16 SPRITE 0,-1,-1:SCROLL 2
17 SPRITE 0,14,X:COLOR 6,6
18 'draw street
19 FOR I=2 TO S-4:? @2,I;%T:NEXT
20 FOR I=S+4 TO 27:? @2,I;%T:NEXT
21 COLOR 6,0:IF O>S ? @2,S-3;%131
22 COLOR 0,6:IF O<S ? @2,S-4;%130
23 COLOR 0,6:IF O>S ? @2,S+4;%131
24 COLOR 6,0:IF O<S ? @2,S+3;%130
25
26 'bonus
27 J=RND(60):COLOR 3,0
28 IF J=5 THEN ? @2,S-2;%27;
29 IF J=25 THEN ? @2,S;%27;
30 IF J=45 THEN ? @2,S+2;%27;
31
32 'trees
33 B=B+1:IF B=4 THEN B=0
34 IF B<>1 GOTO 39
35 H=RND(2)
36 IF H=0 THEN F=2+RND(S-7)
37 IF H=1 THEN F=27-RND(22-S)
38 COLOR 2,6:? @2,F;%161;:GOTO 43
39 IF B<>2 GOTO 43
40 COLOR 4,6:? @2,F;%162;
41
42 'check collision
43 W=30-3*V:IF (AR(O)&1)=0 GOTO 47
44 N=AR(13)+AR(14)+AR(15)+AR(16)
45 IF N>150 GOTO 55
46 P=P+19:DATA 13,32,32:W=94
47 P=P+1:COLOR 7,1
48 ? @0,2;"Score:";P
49 IF P>500 THEN V=5
50 IF P>1000 THEN V=4
51 NOTE W:SYNC V:DATA 0,2
52 GOTO 12
53
54 'game over
55 NOTE 255:IF P<M GOTO 57
56 EPOKE G,LO(P):EPOKE G+1,HI(P)
57 GOSUB 60:ALERT 25:GOTO 1
58
59 'print highscore
60 IF EPEEK(G+1)<128 GOTO 62
61 EPOKE G,0:EPOKE G+1,0
62 M=EPEEK(G)+256*EPEEK(G+1)
63 COLOR 6,1
64 ? @0,15;"High:";M:RETURN
#