Guest User

QBGame

a guest
Jun 17th, 2015
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
QBasic 2.30 KB | None | 0 0
  1. RANDOMIZE TIMER
  2. SCREEN 0
  3. WIDTH 40, 43
  4.  
  5. '===Intro Sequence===
  6.  
  7. COLOR 2: LOCATE 22, 15: PRINT "WELCOME TO"
  8. COLOR 3: LOCATE 24, 13: PRINT "MOVING  SPRITE"
  9.  
  10. OldTimer = TIMER:
  11. DO: LOOP UNTIL (TIMER - OldTimer > 3)
  12.  
  13. CLS
  14. COLOR 1: LOCATE 22, 10: PRINT "Controls are on the"
  15. COLOR 4: LOCATE 24, 11: PRINT "RIGHT ";
  16. COLOR 1: PRINT "Number pad"
  17.  
  18. OldTimer = TIMER: DO: LOOP UNTIL (TIMER - OldTimer > 3)
  19. CLS
  20.  
  21. '===Game Logic===
  22.  
  23. GOSUB NewLevel
  24. '===Main Level Loop===
  25.  
  26. DO
  27.   GOSUB PrintInfo
  28.   GOSUB DrawBorder
  29.  
  30.   COLOR 14: LOCATE PlayerY, PlayerX: PRINT "@"
  31.  
  32.   Var$ = INKEY$
  33.   GOSUB InterpretInput
  34.   GOSUB CheckBorder
  35.   GOSUB CheckPickup
  36.   GOSUB UpdatePlayer
  37.   IF PickupCount = 0 THEN GOSUB NewLevel
  38.  
  39. LOOP WHILE 1
  40.  
  41. END
  42.  
  43. PrintInfo:
  44. COLOR 7: LOCATE 1, 1:
  45. PRINT "Level: "; Level, "Time: "; LevelTimer - INT(TIMER - OldTimer)
  46. PRINT "Score: "; Score, PickupCount
  47. RETURN
  48.  
  49. DrawBorder:
  50. FOR i = 2 TO 39: LOCATE 3, i: PRINT "-";: LOCATE 42, i: PRINT "-";: NEXT
  51. FOR i = 4 TO 41: LOCATE i, 1: PRINT "|";: LOCATE i, 40: PRINT "|";: NEXT
  52. RETURN
  53.  
  54. InterpretInput:
  55. IF Var$ = "8" THEN NewPlayerY = PlayerY - 1
  56. IF Var$ = "2" THEN NewPlayerY = PlayerY + 1
  57. IF Var$ = "4" THEN NewPlayerX = PlayerX - 1
  58. IF Var$ = "6" THEN NewPlayerX = PlayerX + 1
  59. IF Var$ = "7" THEN NewPlayerY = PlayerY - 1: NewPlayerX = PlayerX - 1
  60. IF Var$ = "9" THEN NewPlayerY = PlayerY - 1: NewPlayerX = PlayerX + 1
  61. IF Var$ = "1" THEN NewPlayerY = PlayerY + 1: NewPlayerX = PlayerX - 1
  62. IF Var$ = "3" THEN NewPlayerY = PlayerY + 1: NewPlayerX = PlayerX + 1
  63. RETURN
  64.  
  65. CheckBorder:
  66. IF NewPlayerX < 2 THEN NewPlayerX = 2
  67. IF NewPlayerX > 39 THEN NewPlayerX = 39
  68. IF NewPlayerY < 4 THEN NewPlayerY = 4
  69. IF NewPlayerY > 41 THEN NewPlayerY = 41
  70. RETURN
  71.  
  72. CheckPickup:
  73. IF CHR$(SCREEN(NewPlayerY, NewPlayerX)) = "$" THEN
  74.   Score = Score + 10
  75.   PickupCount = PickupCount - 1
  76.   LOCATE NewPlayerY, NewPlayerX: PRINT " "
  77. END IF
  78. RETURN
  79.  
  80. UpdatePlayer:
  81. IF (PlayerX <> NewPlayerX OR PlayerY <> NewPlayerY) THEN
  82.   LOCATE PlayerY, PlayerX: PRINT " "
  83.   PlayerX = NewPlayerX
  84.   PlayerY = NewPlayerY
  85. END IF
  86. RETURN
  87.  
  88. NewLevel:
  89. Level = Level + 1
  90. PlayerX = 20
  91. PlayerY = 22
  92. LevelTimer = 50 + (Level * 5)
  93. PickupCount = Level
  94. FOR i = 1 TO PickupCount
  95.   x = INT(38 * RND + 1): y = INT(38 * RND + 4)
  96.   COLOR 2: LOCATE y, x: PRINT "$"
  97. NEXT
  98. OldTimer = TIMER
  99. RETURN
Advertisement
Add Comment
Please, Sign In to add comment