AnonymousNamefag

SPRITE.BAS

Mar 26th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
QBasic 3.38 KB | None | 0 0
  1. REM Sprite graphics demo
  2.  
  3. REM $INCLUDE PFONT5X6.BAS
  4.  
  5. SCREEN 13
  6.  
  7. 1  DATA 00, 00, 14, 14, 14, 14, 14, 00, 00
  8. 2  DATA 00, 14, 14, 14, 14, 14, 14, 14, 00
  9. 3  DATA 14, 14, 14, 14, 14, 14, 14, 14, 14
  10. 4  DATA 14, 14, 14, 14, 14, 14, 14, 14, 14
  11. 5  DATA 14, 14, 00, 14, 14, 14, 00, 14, 14
  12. 6  DATA 14, 14, 00, 14, 14, 14, 00, 14, 14
  13. 7  DATA 14, 14, 14, 14, 00, 14, 14, 14, 14
  14. 8  DATA 14, 14, 14, 14, 00, 14, 14, 14, 14
  15. 9  DATA 14, 14, 14, 14, 00, 14, 14, 14, 14
  16. 10 DATA 14, 14, 14, 14, 14, 14, 14, 14, 14
  17. 11 DATA 14, 14, 00, 00, 00, 00, 00, 14, 14
  18. 12 DATA 14, 14, 14, 14, 14, 14, 14, 14, 14
  19. 13 DATA 00, 14, 14, 14, 14, 14, 14, 14, 00
  20. 14 DATA 00, 00, 14, 14, 14, 14, 14, 00, 00
  21.  
  22. LET X% = 150    ' x-coordinate
  23. LET Y% = 75     ' y-coordinate
  24. LET S% = 1      ' speed in pixels-per-stroke
  25.  
  26. REM DRAW:
  27. FOR YOFF% = 1 TO 14
  28. FOR XOFF% = 1 TO 9
  29. READ Z%
  30. PSET (XOFF% + X%, YOFF% + Y%), Z%
  31. NEXT
  32. NEXT
  33.  
  34. REM WRITE SPEED text:
  35. LET XBASE% = 275
  36. LET YBASE% = 185
  37. RESTORE 119
  38. FOR YOFF% = 1 TO 6
  39. FOR XOFF% = 1 TO 5
  40. READ Z%
  41. PSET (XOFF% + XBASE% + 0, YOFF% + YBASE%), Z%
  42. NEXT
  43. NEXT
  44. RESTORE 116
  45. FOR YOFF% = 1 TO 6
  46. FOR XOFF% = 1 TO 5
  47. READ Z%
  48. PSET (XOFF% + XBASE% + 6, YOFF% + YBASE%), Z%
  49. NEXT
  50. NEXT
  51. RESTORE 105
  52. FOR YOFF% = 1 TO 6
  53. FOR XOFF% = 1 TO 5
  54. READ Z%
  55. PSET (XOFF% + XBASE% + 12, YOFF% + YBASE%), Z%
  56. NEXT
  57. NEXT
  58. RESTORE 105
  59. FOR YOFF% = 1 TO 6
  60. FOR XOFF% = 1 TO 5
  61. READ Z%
  62. PSET (XOFF% + XBASE% + 18, YOFF% + YBASE%), Z%
  63. NEXT
  64. NEXT
  65. RESTORE 104
  66. FOR YOFF% = 1 TO 6
  67. FOR XOFF% = 1 TO 5
  68. READ Z%
  69. PSET (XOFF% + XBASE% + 24, YOFF% + YBASE%), Z%
  70. NEXT
  71. NEXT
  72. RESTORE 201
  73. FOR YOFF% = 1 TO 6
  74. FOR XOFF% = 1 TO 5
  75. READ Z%
  76. PSET (XOFF% + XBASE% + 36, YOFF% + YBASE%), Z%
  77. NEXT
  78. NEXT
  79.  
  80. RESTORE 1
  81.  
  82. REM
  83.  
  84. DO
  85.  
  86. 15 LET KEY$ = INKEY$
  87. IF KEY$ = "" GOTO 15
  88. IF ASC(KEY$) = 27 GOTO 16
  89.  
  90. REM FUNCTION keys control the speed.
  91. IF ASC(KEY$) = 0 THEN
  92.         LET C% = ASC(RIGHT$(KEY$, 1))
  93.         IF C% > 58 AND C% < 68 THEN
  94.                 LET S% = C% - 58
  95.                 IF C% = 59 THEN
  96.                         RESTORE 201
  97.                 ELSEIF C% = 60 THEN
  98.                         RESTORE 202
  99.                 ELSEIF C% = 61 THEN
  100.                         RESTORE 203
  101.                 ELSEIF C% = 62 THEN
  102.                         RESTORE 204
  103.                 ELSEIF C% = 63 THEN
  104.                         RESTORE 205
  105.                 ELSEIF C% = 64 THEN
  106.                         RESTORE 206
  107.                 ELSEIF C% = 65 THEN
  108.                         RESTORE 207
  109.                 ELSEIF C% = 66 THEN
  110.                         RESTORE 208
  111.                 ELSEIF C% = 67 THEN
  112.                         RESTORE 209
  113.                 END IF
  114.                 FOR YOFF% = 1 TO 6
  115.                 FOR XOFF% = 1 TO 5
  116.                 READ Z%
  117.                 PSET (XBASE% + XOFF% + 36, YBASE% + YOFF%), Z%
  118.                 NEXT
  119.                 NEXT
  120.                 RESTORE
  121.         END IF
  122. END IF
  123.  
  124. REM ERASE:
  125. FOR YOFF% = 1 TO 14
  126. FOR XOFF% = 1 TO 9
  127. READ Z%
  128. PSET (XOFF% + X%, YOFF% + Y%), 0
  129. NEXT
  130. NEXT
  131. RESTORE 1
  132.  
  133. REM New position:
  134. IF KEY$ = "W" OR KEY$ = "w" THEN
  135.         LET Y% = Y% - S%
  136. ELSEIF KEY$ = "A" OR KEY$ = "a" THEN
  137.         LET X% = X% - S%
  138. ELSEIF KEY$ = "S" OR KEY$ = "s" THEN
  139.         LET Y% = Y% + S%
  140. ELSEIF KEY$ = "D" OR KEY$ = "d" THEN
  141.         LET X% = X% + S%
  142. END IF
  143.  
  144. REM DRAW:
  145. FOR YOFF% = 1 TO 14
  146. FOR XOFF% = 1 TO 9
  147. READ Z%
  148. PSET (XOFF% + X%, YOFF% + Y%), Z%
  149. NEXT
  150. NEXT
  151. RESTORE 1
  152.  
  153. LOOP WHILE 1 = 1
  154.  
  155. 16 END
Add Comment
Please, Sign In to add comment