its a small star raiders inspired shooter that i made on the plane on the way to california from louisiana.... kinda fun.
shoot the aliens lol...
Code: Select all
RANDOMIZE TIMER
COLOR 9: PRINT " COSMIC SHOOTOUT!"
PRINT
COLOR 4: PRINT " SHOOT THE ASTEROIDS!"
PRINT
COLOR 4: PRINT " CONTROLS - "
PRINT
COLOR 4: PRINT " TO MOVE USE ARROW KEYS."
COLOR 4: PRINT " TO SHOOT USE SPACE."
PRINT
COLOR 14: PRINT " -- PRESS ANY KEY"
DO
LOOP UNTIL INKEY$ <> ""
RANDOMIZE TIMER
LET px = 160
LET py = 100
LET bo = 0
LET bx = px
LET by = py
LET bd = 150
LET ex = INT(RND * 310) + 10
LET ey = INT(RND * 190) + 10
LET ed = 0
LET es = .1
DIM sx(30), sy(30), ssx(30), ssy(30)
FOR cs = 0 TO 29
LET sx(cs) = INT(RND * 20) + 150
LET sy(cs) = INT(RND * 20) + 90
LET ssx(cs) = INT(RND * 4) + 1
IF INT(RND * 2) = 1 THEN : LET ssx(cs) = -ssx(cs)
LET ssy(cs) = INT(RND * 4) + 1
IF INT(RND * 2) = 1 THEN : LET ssy(cs) = -ssy(cs)
NEXT cs
SCREEN 13
DO
FOR cs = 0 TO 29
CIRCLE (sx(cs), sy(cs)), 1, 0
LET sx(cs) = sx(cs) + ssx(cs)
LET sy(cs) = sy(cs) + ssy(cs)
IF sx(cs) <1> 320 OR sy(cs) <1> 200 THEN
LET sx(cs) = INT(RND * 20) + 150
LET sy(cs) = INT(RND * 20) + 90
LET ssx(cs) = INT(RND * 10) + 1
IF INT(RND * 2) = 1 THEN : LET ssx(cs) = -ssx(cs)
LET ssy(cs) = INT(RND * 10) + 1
IF INT(RND * 2) = 1 THEN : LET ssy(cs) = -ssy(cs)
ELSE
CIRCLE (sx(cs), sy(cs)), 1, 15
END IF
NEXT cs
LET k = INP(96)
LET flush$ = INKEY$
IF k = 75 AND px > 1 THEN
CIRCLE (px, py), 5, 0
PSET (px, py), 0
LET px = px - 10
FOR cs = 0 TO 29
CIRCLE (sx(cs), sy(cs)), 1, 0
LET sx(cs) = sx(cs) - 7
CIRCLE (sx(cs), sy(cs)), 1, 15
NEXT cs
IF bo = 1 THEN
CIRCLE (bx, by), bd / 3, 0
LET bx = bx + 5
CIRCLE (bx, by), bd / 3, 4
END IF
LINE (ex - (ed / 2), ey - (ed / 2))-(ex + (ed / 4), ey - (ed / 2)), 0
LINE (ex - (ed / 2), ey - (ed / 2))-(ex - (ed / 6), ey), 0
LINE (ex + (ed / 4), ey - (ed / 2))-(ex - (ed / 6), ey), 0
LINE (ex + (ed / 4), ey - (ed / 2))-(ex, ey), 0
LINE (ex - (ed / 6), ey)-(ex, ey), 0
LET ex = ex + 4
LINE (ex - (ed / 2), ey - (ed / 2))-(ex + (ed / 4), ey - (ed / 2)), 14
LINE (ex - (ed / 2), ey - (ed / 2))-(ex - (ed / 6), ey), 14
LINE (ex + (ed / 4), ey - (ed / 2))-(ex - (ed / 6), ey), 14
LINE (ex + (ed / 4), ey - (ed / 2))-(ex, ey), 14
LINE (ex - (ed / 6), ey)-(ex, ey), 14
END IF
IF k = 77 AND px <320> 1 THEN
CIRCLE (px, py), 5, 0
PSET (px, py), 0
LET py = py - 10
FOR cs = 0 TO 29
CIRCLE (sx(cs), sy(cs)), 1, 0
LET sy(cs) = sy(cs) + 5
CIRCLE (sx(cs), sy(cs)), 1, 15
NEXT cs
IF bo = 1 THEN
CIRCLE (bx, by), bd / 3, 0
LET by = by + 5
CIRCLE (bx, by), bd / 3, 4
END IF
LINE (ex - (ed / 2), ey - (ed / 2))-(ex + (ed / 4), ey - (ed / 2)), 0
LINE (ex - (ed / 2), ey - (ed / 2))-(ex - (ed / 6), ey), 0
LINE (ex + (ed / 4), ey - (ed / 2))-(ex - (ed / 6), ey), 0
LINE (ex + (ed / 4), ey - (ed / 2))-(ex, ey), 0
LINE (ex - (ed / 6), ey)-(ex, ey), 0
LET ey = ey + 4
LINE (ex - (ed / 2), ey - (ed / 2))-(ex + (ed / 4), ey - (ed / 2)), 14
LINE (ex - (ed / 2), ey - (ed / 2))-(ex - (ed / 6), ey), 14
LINE (ex + (ed / 4), ey - (ed / 2))-(ex - (ed / 6), ey), 14
LINE (ex + (ed / 4), ey - (ed / 2))-(ex, ey), 14
LINE (ex - (ed / 6), ey)-(ex, ey), 14
END IF
IF k = 80 AND py < 200 THEN
CIRCLE (px, py), 5, 0
PSET (px, py), 0
LET py = py + 10
FOR cs = 0 TO 29
CIRCLE (sx(cs), sy(cs)), 1, 0
LET sy(cs) = sy(cs) - 5
CIRCLE (sx(cs), sy(cs)), 1, 15
NEXT cs
IF bo = 1 THEN
CIRCLE (bx, by), bd / 3, 0
LET by = by - 5
CIRCLE (bx, by), bd / 3, 4
END IF
LINE (ex - (ed / 2), ey - (ed / 2))-(ex + (ed / 4), ey - (ed / 2)), 0
LINE (ex - (ed / 2), ey - (ed / 2))-(ex - (ed / 6), ey), 0
LINE (ex + (ed / 4), ey - (ed / 2))-(ex - (ed / 6), ey), 0
LINE (ex + (ed / 4), ey - (ed / 2))-(ex, ey), 0
LINE (ex - (ed / 6), ey)-(ex, ey), 0
LET ey = ey - 4
LINE (ex - (ed / 2), ey - (ed / 2))-(ex + (ed / 4), ey - (ed / 2)), 14
LINE (ex - (ed / 2), ey - (ed / 2))-(ex - (ed / 6), ey), 14
LINE (ex + (ed / 4), ey - (ed / 2))-(ex - (ed / 6), ey), 14
LINE (ex + (ed / 4), ey - (ed / 2))-(ex, ey), 14
LINE (ex - (ed / 6), ey)-(ex, ey), 14
END IF
IF k = 57 AND bo = 0 THEN : LET bo = 1: LET bx = px: LET by = py: LET bd = 150
IF k = 1 THEN : END
CIRCLE (px, py), 5, 1: PSET (px, py), 4
IF bo = 1 THEN
CIRCLE (bx, by), bd / 3, 0
LET bd = bd - 5
IF bd < 5 THEN
LET bo = 0
ELSE
CIRCLE (bx, by), bd / 3, 4
END IF
END IF
LINE (ex - (ed / 2), ey - (ed / 2))-(ex + (ed / 4), ey - (ed / 2)), 0
LINE (ex - (ed / 2), ey - (ed / 2))-(ex - (ed / 6), ey), 0
LINE (ex + (ed / 4), ey - (ed / 2))-(ex - (ed / 6), ey), 0
LINE (ex + (ed / 4), ey - (ed / 2))-(ex, ey), 0
LINE (ex - (ed / 6), ey)-(ex, ey), 0
LET ed = ed + es
IF bo = 1 AND bd <ed> ex - (ed / 4) AND bx <ex> ey - (ed / 2) AND by <ey> 150 THEN
FOR dy = 0 TO 200 STEP 5
LINE (0, dy)-(319, dy), INT(RND * 2) + 1
LET oldtime = TIMER
DO
LOOP UNTIL TIMER - .01 > oldtime
NEXT dy
LOCATE 10, 7: COLOR 4: PRINT ". . . G A M E O V E R . . ."
END
DO
LOOP UNTIL INKEY$ <ELSE> oldtime
LOOP