home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib39b.dsk / ANIMATE.SHAPES.bas next >
BASIC Source File  |  2023-02-26  |  2KB  |  73 lines

  1. 10  REM  *************************
  2. 20  REM  * ANIMATE.SHAPES        *
  3. 30  REM  * BY DAVID HARRIS       *
  4. 40  REM  * COPYRIGHT(C) 1990     *
  5. 50  REM  * MINDCRAFT PUBL. CORP. *
  6. 60  REM  * CONCORD, MA 01742     *
  7. 70  REM  *************************    
  8. 80 :
  9. 90 : REM  ** MAIN LOOP **
  10. 100  PRINT  CHR$(21)
  11. 110  GOSUB 150: REM  INITIALIZE
  12. 120  GOSUB 270: REM  DRAW MESSAGE
  13. 130  GET B$: PRINT : TEXT : END 
  14. 140 :
  15. 150 : REM  ** INITIALIZE **
  16. 160 :
  17. 170  HCOLOR= 3: ONERR  GOTO 720
  18. 180  IF  PEEK(24576) < >2  THEN  PRINT  CHR$(4);"BLOAD SHAPES,A$6000"
  19. 190  POKE 232,0: POKE 233,96
  20. 200  SCALE= 1: ROT= 0
  21. 210 SCREEN = 0
  22. 220 X = 50:Y = 50:X1 = X:X2 = X:Y1 = Y:Y2 = Y:VECT = 0: REM  NULL INITIAL VALUES
  23. 230  HGR : XDRAW 1 AT X +1,Y
  24. 240  HGR2 : XDRAW 1 AT X +1,Y
  25. 250  RETURN 
  26. 260 :
  27. 270 : REM  ** DRAW MESSAGE **
  28. 280 :
  29. 290  FOR LOOP = 1 TO 189
  30. 300  POKE 230,32 *(SCREEN +1)
  31. 310  XDRAW 1 AT X1 +1,Y1
  32. 320  IF VECT >10  THEN  HPLOT X,Y: POKE 230,32 *(2 -SCREEN): HPLOT X,Y: POKE 230,32 *(SCREEN +1)
  33. 330 X1 = X2:Y1 = Y2
  34. 340  READ VECT
  35. 350  GOSUB 440: REM  MOVE
  36. 360 X2 = X:Y2 = Y
  37. 370  IF VECT <10  THEN  XDRAW 1 AT X +1,Y: GOTO 390
  38. 380  XDRAW 2 AT X,Y
  39. 390  POKE  -16300 +SCREEN,0
  40. 400 SCREEN = 1 -SCREEN
  41. 410  NEXT LOOP
  42. 420  RETURN 
  43. 430 :
  44. 440 : REM  ** MOVE **
  45. 450 :
  46. 460 DIR = VECT: IF DIR >10  THEN DIR = DIR -10
  47. 470  IF DIR = 1  THEN Y = Y -1
  48. 480  IF DIR = 2  THEN Y = Y -1:X = X +1
  49. 490  IF DIR = 3  THEN X = X +1
  50. 500  IF DIR = 4  THEN Y = Y +1:X = X +1
  51. 510  IF DIR = 5  THEN Y = Y +1
  52. 520  IF DIR = 6  THEN Y = Y +1:X = X -1
  53. 530  IF DIR = 7  THEN X = X -1
  54. 540  IF DIR = 8  THEN Y = Y -1:X = X -1
  55. 550  RETURN 
  56. 560 :
  57. 570 : REM  ** LETTER DATA **
  58. 580 :
  59. 590  REM  ** N **
  60. 600  DATA  15,15,15,15,15,15,15,15,15,15,2,1,1,1,1,1,1,1,14,14,15,14,15,14,14,14,11,11,11,11,11,11,11,11,11,4
  61. 610  REM  ** I **
  62. 620  DATA  2,14,13,13,16,15,15,15,15,15,15,16,13,13
  63. 630  REM  ** B **
  64. 640  DATA  2,1,1,1,1,1,2,12,15,15,15,15,15,15,15,15,2,1,1,1,1,1,1,11,13,13,14,15,15,16,17,17,3,3,14,15,15,16,17,17
  65. 650  REM  ** B **
  66. 660  DATA  2,2,2,2,2,1,1,12,15,15,15,15,15,15,15,15,2,1,1,1,1,1,1,11,13,13,14,15,15,16,17,17,3,3,14,15,15,16,17,17
  67. 670  REM  ** L **
  68. 680  DATA  2,2,2,2,2,1,1,12,15,15,15,15,15,15,15,15,13,13,13
  69. 690  REM  ** E **
  70. 700  DATA  2,1,1,1,2,1,1,12,15,15,15,15,15,15,15,15,2,1,1,1,1,1,1,11,13,13,6,6,5,15,13,6,5,5,15,13,13
  71. 710  DATA  2,2,2
  72. 720  TEXT : IF  PEEK(222) = 6  THEN  HOME : PRINT "THE FILE SHAPES": PRINT "MUST BE ON THIS DISK": END 
  73. 730  HOME : PRINT "ERROR #" PEEK(222)" IN LINE " PEEK(218) +256 *( PEEK(219): END