5748490 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$ cat -n game1.bas
   1: DECLARE SUB Explosion (x!, y!)
   2: DECLARE SUB PlayGame ()
   3: DECLARE SUB Delay (t!)
   4: DECLARE SUB LoadImgs ()
   5: DECLARE SUB Shoot (x!, y!, d!)
   6: DECLARE SUB LoadFont (f$)
   7: DECLARE SUB Font (t$, x!, y!, C!)
   8: DECLARE SUB OpeningTitle ()
   9: DIM SHARED Txt(255) AS STRING
  10: DIM SHARED Char(1 TO 3000)
  11: DIM SHARED Char2(1 TO 3000)
  12: DIM SHARED Back(1 TO 3000)
  13: ON ERROR GOTO er
  14: LoadFont "C:\roy1.fnt"
  15: SCREEN 13: CLS
  16: LoadImgs
  17: OpeningTitle
  18: Font "GAME #1", 125, 100, 34
  19: Delay 1
  20: CLS
  21: PlayGame
  22: 
  23: END
  24: er:
  25: RESUME NEXT
  26: 
  27: SUB Delay (t)
  28: a = TIMER + t
  29: DO UNTIL TIMER >= a: LOOP
  30: END SUB
  31: 
  32: SUB Explosion (x, y)
  33: w = x + 5: z = y + 5
  34: FOR q = 0 TO 5
  35: CIRCLE (w, z), q, 14
  36: SOUND q * 40, .2
  37: NEXT q
  38: FOR q = 5 TO 8
  39: CIRCLE (w, z), q, 12
  40: SOUND q * 40, .2
  41: NEXT q
  42: FOR q = 8 TO 9
  43: CIRCLE (w, z), q, 4
  44: SOUND q * 40, .2
  45: NEXT q
  46: END SUB
  47: 
  48: SUB Font (t$, x, y, C)
  49: s$ = "C" + STR$(C) + "BM" + STR$(x) + "," + STR$(y)
  50: DRAW "X" + VARPTR$(s$)
  51: FOR q = 1 TO LEN(t$)
  52: DRAW "X" + VARPTR$(Txt(ASC(MID$(t$, q, 1))))
  53: NEXT q
  54: END SUB
  55: 
  56: SUB LoadFont (f$)
  57: OPEN f$ FOR INPUT AS #1
  58: a = 0
  59: DO UNTIL EOF(1)
  60: INPUT #1, Txt(a)
  61: a = a + 1
  62: LOOP
  63: CLOSE 1
  64: END SUB
  65: 
  66: SUB LoadImgs
  67: CLS
  68: CIRCLE (10, 10), 5, 2
  69: PAINT (10, 10), 2, 2
  70: GET (4, 4)-(16, 16), Char2
  71: CLS
  72: CIRCLE (10, 10), 5, 1
  73: PAINT (10, 10), 1, 1
  74: GET (4, 4)-(16, 16), Char
  75: CLS
  76: END SUB
  77: 
  78: SUB OpeningTitle
  79: x% = POINT(0) * 2: y% = POINT(1) * 2
  80: d = 32
  81: FOR q = 0 TO x% / 2
  82: LINE (q, 0)-(q, y%), d, BF
  83: LINE (x% - q, 0)-(x% - q, y%), d, BF
  84: d = d + 1
  85: NEXT q
  86: END SUB
  87: 
  88: SUB PlayGame
  89: i = 2
  90: OpeningTitle
  91: x = 160: y = 100
  92: COLOR 39
  93: LOCATE 1, 1: PRINT "лллллллллллллллллллллллллллллллллллллллл";
  94: LOCATE 25, 1: PRINT "лллллллллллллллллллллллллллллллллллллллл";
  95: FOR q = 2 TO 24
  96: LOCATE q, 40: PRINT "л";
  97: LOCATE q, 1: PRINT "л";
  98: NEXT q
  99: GET (x - (5 + i), y - (5 + i))-(x + (5 + i), y + (5 + i)), Back
 100: CIRCLE (x, y), 5, 2
 101: 'PAINT (x, y), 2, 2
 102: 1 a$ = INKEY$
 103: IF a$ = "" THEN GOTO 1
 104: PUT (x - (5 + i), y - (5 + i)), Back, PSET
 105: IF a$ = CHR$(0) + "M" AND x + (6 + i) < 320 THEN x = x + i
 106: IF a$ = CHR$(0) + "K" AND x - (6 + i) > 0 THEN x = x - i
 107: IF a$ = CHR$(0) + "P" AND y + (6 + i) < 200 THEN y = y + i
 108: IF a$ = CHR$(0) + "H" AND y - (6 + i) > 0 THEN y = y - i
 109: IF x > 0 AND x < 40 AND y > 0 AND y < 40 THEN dd = 1 ELSE dd = 0
 110: IF a$ = "" THEN END
 111: IF a$ = " " THEN Shoot x, y - 3, 43
 112: GET (x - (5 + i), y - (5 + i))-(x + (5 + i), y + (5 + i)), Back
 113: IF dd = 0 THEN CIRCLE (x, y), 5, 2': PAINT (x, y), 2, 2
 114: GOTO 1
 115: END SUB
 116: 
 117: SUB Shoot (x, y, d)
 118: DIM Back2(1 TO 400)
 119: FOR q = 1 TO d * 4 STEP 4
 120: GET (x - 3 + q, y + 2)-(x + 5 + q, y + 4), Back2
 121: LINE (x + 3 + q, y + 2)-(x + 5 + q, y + 2), 1
 122: LINE (x + 2 + q, y + 4)-(x + 4 + q, y + 4), 2
 123: PUT (x - 3 + q, y + 2), Back2, PSET
 124: NEXT q
 125: Explosion x - 2 + q, y - 2
 126: END SUB
 127: 
5748491 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$

Click here to go back to the directory listing.
Click here to download this file.
last modified: 2000-05-09 21:03:09