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: |