/[james]/archive/graphical/Invaders
ViewVC logotype

Contents of /archive/graphical/Invaders

Parent Directory Parent Directory | Revision Log Revision Log


Revision 28 - (show annotations) (download)
Fri Mar 14 14:57:29 2003 UTC (21 years, 8 months ago) by james
File size: 3034 byte(s)
Initial import.

1 MODE 15
2 MODE 13
3 OFF
4 ON ERROR MODE 12: REPORT: PRINT ERL: END
5
6 PRINT''" Red Blue"
7 PRINT'"Move left Z 2"
8 PRINT'"Move right X 3"
9 PRINT'"Fire bullet <space> Enter"
10 PRINT''"Press any key to start..."
11 IF GET
12
13 MODE 15
14 MODE 13: REM 1280 * 1024 os units; 320 * 256 pixels (4 os units = 1 pixel)
15 OFF
16
17 PROCs
18
19 Bank% = 1
20 REPEAT
21 WAIT
22 SYS"OS_Byte", 113, Bank%
23 SYS"OS_Byte", 112, 3 - Bank%
24 Bank% = 3 - Bank%
25 PROCf
26 PROCm
27 n% += 1
28 IF TIME - 100 > m% THEN m% += 100: o% = n%: n% = 0
29 UNTIL 0
30 END
31
32
33 DEF PROCs
34 x1% = 400
35 x2% = 800
36 b1y% = -100
37 b2y% = -100
38 z1% = 0
39 z2% = 0
40 zh% = 0
41 zp% = 0
42 s% = 0
43 e% = 0
44 f% = 1
45 m% = TIME
46 n% = 0
47 o% = 0
48 DIM sx%(10)
49 DIM sy%(10)
50 DIM sd%(10)
51 DIM se%(10)
52 se%() = FALSE
53 ENDPROC
54
55
56 DEF PROCf
57 COLOUR 128 + %010000
58 CLS
59 GCOL %000011
60 PLOT 4, x1%, 140
61 PLOT 0, -40, -40
62 PLOT 81, 80, 0
63 GCOL %110000
64 PLOT 4, x2%, 140
65 PLOT 0, -40, -40
66 PLOT 81, 80, 0
67 GCOL %001100
68 RECTANGLE FILL 0, 0, 1280, 100
69 IF b1y% > 0 THEN
70 GCOL %010011
71 CIRCLE FILL b1x%, b1y%, 4
72 ENDIF
73 IF b2y% > 0 THEN
74 GCOL %110001
75 CIRCLE FILL b2x%, b2y%, 4
76 ENDIF
77 IF s% > 0 THEN
78 FOR t% = 1 TO 10
79 IF se%(t%) THEN
80 GCOL RND(%111111)
81 RECTANGLE FILL sx%(t%) - 20, sy%(t%) - 20, 40
82 ENDIF
83 NEXT
84 ENDIF
85 COLOUR %111111
86 PRINT "Red: "+STR$z1% TAB(10)" ";
87 IF zp% = 1 THEN PRINT "<-"; ELSE PRINT " ";
88 PRINT" High: "+STR$zh%;
89 IF zp% = 2 THEN PRINT " ->";
90 PRINTTAB(30) "Blue: "+STR$z2%
91 COLOUR 0
92 COLOUR 128 + %001100 TINT 196
93 PRINTTAB(1, 30) "Level: "+STR$f% TAB(20) "Frames/sec: "+STR$o%
94 ENDPROC
95
96
97 DEF PROCm
98 IF INKEY -98 THEN x1% -= 16: IF x1% < 0 THEN x1% = 0
99 IF INKEY -67 THEN x1% += 16: IF x1% > 1280 THEN x1% = 1280
100 IF INKEY -125 THEN x2% -= 16: IF x2% < 0 THEN x2% = 0
101 IF INKEY -109 THEN x2% += 16: IF x2% > 1280 THEN x2% = 1280
102 IF (INKEY -99) AND b1y% < 0 THEN b1y% = 130: b1x% = x1%
103 IF (INKEY -61) AND b2y% < 0 THEN b2y% = 130: b2x% = x2%
104 IF b1y% > 0 THEN b1y% += 40: IF b1y% > 1000 THEN b1y% = -100
105 IF b2y% > 0 THEN b2y% += 40: IF b2y% > 1000 THEN b2y% = -100
106 IF RND(50) = 1 AND s% < 10 THEN
107 s% += 1
108 t% = 1
109 WHILE se%(t%) = TRUE
110 t% += 1
111 ENDWHILE
112 sx%(t%) = RND(1200)
113 sy%(t%) = 1000
114 sd%(t%) = f%
115 se%(t%) = TRUE
116 e% += 1
117 IF e% = 20 THEN f% += 1: e% = 0
118 ENDIF
119 IF s% > 0 THEN
120 FOR t% = 1 TO 10
121 IF se%(t%) THEN
122 sy%(t%) -= sd%(t%)
123 IF sy%(t%) < 120 THEN
124 s% = 0
125 FOR u% = 1 TO 10
126 se%(u%) = FALSE
127 NEXT
128 IF z1% > zh% THEN zh% = z1%: zp% = 1
129 IF z2% > zh% THEN zh% = z2%: zp% = 2
130 z1% = 0
131 z2% = 0
132 e% = 0
133 f% = 1
134 ELSE
135 IF b1y% > 0 THEN
136 IF (sx%(t%) - 20 < b1x%) AND (sx%(t%) + 20 > b1x%) AND (b1y% > sy%(t%) - 20) THEN s% -= 1: se%(t%) = FALSE: z1% += sy%(t%) / 10: b1y% = -100
137 ENDIF
138 IF b2y% > 0 THEN
139 IF (sx%(t%) - 20 < b2x%) AND (sx%(t%) + 20 > b2x%) AND (b2y% > sy%(t%) - 20) THEN s% -= 1: se%(t%) = FALSE: z2% += sy%(t%) / 10: b2y% = -100
140 ENDIF
141 ENDIF
142 ENDIF
143 NEXT
144 ENDIF
145 ENDPROC

  ViewVC Help
Powered by ViewVC 1.1.26