2017-01-06 19:10:06 +00:00
|
|
|
10 HOME:HGR
|
|
|
|
11 POKE 232,0:POKE 233,16
|
|
|
|
12 PRINT CHR$(4)+"BLOAD OBJECTS.SHAPE,A$1000"
|
|
|
|
15 GOSUB 1000
|
2017-01-06 19:42:42 +00:00
|
|
|
20 CX=20:CY=100:VY=0:SX=140:SY=80:BO=0:GO=0
|
|
|
|
22 XDRAW 1 AT SX,SY
|
2017-01-06 19:10:06 +00:00
|
|
|
25 XDRAW 2 AT CX,CY-7
|
|
|
|
30 HCOLOR=5:REM ORANGE
|
|
|
|
'35 HPLOT CX,CY-7 TO CX,CY+7
|
|
|
|
' ERASE OLD COPY
|
|
|
|
'35 XDRAW 2 AT CX,CY-7
|
2017-01-06 19:42:42 +00:00
|
|
|
35 OX=CX:OY=CY:LX=SX:LY=SY
|
|
|
|
37 IF PEEK(-16384)<128 THEN GOTO 100
|
2017-01-06 14:40:59 +00:00
|
|
|
40 GET A$
|
2017-01-06 19:42:42 +00:00
|
|
|
41 IF A$="I" AND SY>4 THEN SY=SY-4
|
|
|
|
42 IF A$="J" AND SX>4 THEN SX=SX-4
|
|
|
|
43 IF A$="K" AND SX<275 THEN SX=SX+4
|
|
|
|
44 IF A$="M" AND SY<150 THEN SY=SY+4
|
2017-01-06 19:10:06 +00:00
|
|
|
45 IF A$="D" THEN CX=CX+2
|
|
|
|
46 IF A$="A" THEN CX=CX-2
|
|
|
|
47 IF A$="Q" THEN GOTO 800
|
|
|
|
48 IF A$=" " THEN VY=5
|
2017-01-06 19:42:42 +00:00
|
|
|
49 IF A$="H" THEN GOSUB 5000
|
|
|
|
50 IF A$="," THEN GOSUB 6000
|
|
|
|
51 IF A$="." THEN GOSUB 7000
|
2017-01-06 19:10:06 +00:00
|
|
|
' PHYSICS ENGINE
|
|
|
|
100 CY=CY-VY
|
|
|
|
105 VY=VY-4.5
|
|
|
|
' COLLISION DETECTION
|
|
|
|
200 IF CX<7 THEN CX=7
|
|
|
|
205 IF CX>271 THEN CX=271
|
|
|
|
210 IF CY<7 THEN CY=7:VY=-VY
|
|
|
|
' DETECT THE FLOOR
|
|
|
|
220 IF CX < 119 AND CY > 112 THEN CY=112:VY=0
|
|
|
|
225 IF CX > 161 AND CY > 112 THEN CY=112:VY=0
|
|
|
|
230 IF CX > 119 AND CX < 161 AND CY>140 THEN GOTO 800
|
|
|
|
240 REM
|
|
|
|
' DRAW AT UPDATE CO-ORDS
|
2017-01-06 19:42:42 +00:00
|
|
|
245 IF OX=CX AND OY=CY GOTO 255
|
2017-01-06 19:10:06 +00:00
|
|
|
250 XDRAW 2 AT OX,OY-7
|
|
|
|
251 XDRAW 2 AT CX,CY-7
|
2017-01-06 19:42:42 +00:00
|
|
|
255 IF LX=SX AND LY=SY GOTO 300
|
|
|
|
256 XDRAW 1 AT LX,LY
|
|
|
|
257 XDRAW 1 AT SX,SY
|
|
|
|
300 REM
|
2017-01-06 19:10:06 +00:00
|
|
|
500 GOTO 30
|
|
|
|
'
|
|
|
|
800 REM DEAD
|
|
|
|
805 VTAB 21:PRINT "YOU DIED!":PRINT "TRY AGAIN? (Y/N) ";
|
|
|
|
810 GET A$
|
|
|
|
815 IF A$="Y" THEN GOTO 10
|
|
|
|
820 IF A$="N" THEN GOTO 999
|
|
|
|
830 GOTO 810
|
|
|
|
'
|
|
|
|
999 END
|
|
|
|
1000 REM LEVEL 1
|
|
|
|
' FLOOR
|
|
|
|
1005 HCOLOR=3
|
|
|
|
1010 HPLOT 0,120 TO 112,120 TO 112,159 TO 168,159 TO 168,120 TO 279,120
|
|
|
|
' "WATER"
|
|
|
|
1015 HCOLOR=1
|
|
|
|
1020 FOR I=113 TO 167:HPLOT I,130 TO I,158:NEXT I
|
|
|
|
' PLATFORM
|
|
|
|
1030 HCOLOR=2:FOR I=230 TO 279:HPLOT I,50 TO I,56:NEXT I
|
|
|
|
' SENTRY
|
|
|
|
1035 HCOLOR=3:HPLOT 242,40 TO 242,46:HPLOT 243,40 TO 243,46:HPLOT 247,40 TO 247,46:HPLOT 248,40 TO 248,46
|
|
|
|
1037 HPLOT 243,39 TO 247,39:HPLOT 242,46 TO 248,46
|
|
|
|
1038 HPLOT 240,47 TO 241,47:HPLOT 239,48 TO 240,48:HPLOT 239,49 TO 240,49
|
|
|
|
1039 HPLOT 249,47 TO 250,47:HPLOT 250,48 TO 251,48:HPLOT 250,49 TO 251,49
|
|
|
|
1040 HCOLOR=5:HPLOT 244,41 TO 245,41:HPLOT 244,43 TO 245,43
|
|
|
|
' LASER
|
|
|
|
1042 HPLOT 0,42 TO 240,42
|
|
|
|
1050 RETURN
|
2017-01-06 19:42:42 +00:00
|
|
|
' HELP
|
|
|
|
5000 REM HELP
|
|
|
|
5010 TEXT:HOME
|
|
|
|
5020 PRINT " **** HELP ****"
|
|
|
|
5025 PRINT
|
|
|
|
5030 PRINT " CHELL PORTAL GUN"
|
|
|
|
5035 PRINT " ~~~~~~~~~~~~~ ~~~~~~~~~~~~~"
|
|
|
|
5040 PRINT " A = MOVE LEFT I = UP"
|
|
|
|
5050 PRINT " D = MOVE RIGHT J = LEFT"
|
|
|
|
5060 PRINT " SPACE = JUMP K = RIGHT"
|
|
|
|
5070 PRINT " M = DOWN"
|
|
|
|
5080 PRINT " , = SHOOT BLUE"
|
|
|
|
5090 PRINT " Q = QUIT . = SHOOT ORANGE"
|
|
|
|
5100 PRINT:GET A$
|
|
|
|
5110 HGR
|
|
|
|
5120 RETURN
|
|
|
|
' DRAW BLUE PORTAL
|
|
|
|
6000 REM DRAW BLUE
|
|
|
|
' Erase old
|
|
|
|
6005 IF BO=1 THEN HCOLOR=0: DRAW 2 AT BX,BY
|
|
|
|
6010 BX=SX:BY=SY
|
|
|
|
6020 BO=1:HCOLOR=6:DRAW 2 AT BX,BY
|
|
|
|
6030 RETURN
|
|
|
|
' DRAW ORANGE PORTAL
|
|
|
|
7000 REM DRAW ORANGE
|
|
|
|
' Erase old
|
|
|
|
7005 IF GO=1 THEN HCOLOR=0: DRAW 2 AT GX,GY
|
|
|
|
7010 GX=SX+1:GY=SY
|
|
|
|
7020 GO=1:HCOLOR=5:DRAW 2 AT GX,GY
|
|
|
|
7030 RETURN
|