home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 326-350 / apd341 / source_progs / starfield.amos / starfield.amosSourceCode < prev   
Encoding:
AMOS Source Code  |  1991-08-01  |  2.6 KB  |  118 lines

  1. '*********************************************************** 
  2. '*            Starfield using computed sprites             *   
  3. '*                 By Gary Fearn  23/8/90                  *     
  4. '*                                                         *   
  5. '*  Use the Joystick in port 2 to move ship                *   
  6. '*  The Space bar and the "/" key change speed (aka Elite) *   
  7. '*  To quit press joystick button                          * 
  8. '*                                                         * 
  9. '*********************************************************** 
  10. '
  11. Curs Off : Cls 0 : Flash Off : Hide 
  12. Sprite Update Off 
  13. STARNUM=20 : STARFLAG=2 : XPOS=320
  14. Dim COUNT(STARNUM-1),X(STARNUM-1),Y(STARNUM-1)
  15. For A=0 To STARNUM-1
  16.    Read COUNT(A),X(A),Y(A)
  17. Next A
  18. Plot 50,50,2 : Rem              Activate any of these for different effects 
  19. 'Circle 58,58,6
  20. 'Circle 58,58,3 : Paint 59,59
  21. 'Box 50,50 To 54,54
  22. Get Sprite 0,5,50,50 To 65,65
  23. INIT_SPRITES
  24. Cls 0
  25. For A=0 To STARNUM-1
  26.    Sprite A+8,X Hard(0,X(A)),Y Hard(0,Y(A)),5
  27. Next 
  28. Sprite Update 
  29. '
  30. MAIN:
  31. Do 
  32. A$=Inkey$
  33. If A$=" " Then Inc STARFLAG
  34. If A$="/" Then Dec STARFLAG
  35. If Jleft(1)=True Then Gosub LEFTROUTINE
  36. If Jright(1)=True Then Gosub RIGHTROUTINE
  37. If Jup(1)=True Then Gosub UPROUTINE
  38. If Jdown(1)=True Then Gosub BACKROUTINE
  39. If Fire(1)=True Then Exit 
  40. Loop 
  41. Fade 10 : Wait 140
  42. Edit 
  43. '
  44. UPROUTINE:
  45. For A=0 To STARNUM-1
  46.    Add Y(A),-COUNT(A)*STARFLAG
  47.    If Y(A)=>200 Then Y(A)=0
  48.    Sprite A+8,X Hard(0,X(A)),Y Hard(0,Y(A)),5
  49. Next 
  50. If CURBOB<>1 Then Bob 1,160,100,1
  51. CURBOB=1
  52. Sprite Update 
  53. Return 
  54. '
  55. BACKROUTINE:
  56. For A=0 To STARNUM-1
  57.    Add Y(A),COUNT(A)*STARFLAG
  58.    If Y(A)=<0 Then Y(A)=200
  59.    Sprite A+8,X Hard(0,X(A)),Y Hard(0,Y(A)),5
  60. Next 
  61. If CURBOB<>2 Then Bob 1,160,100,2
  62. CURBOB=2
  63. Sprite Update 
  64. Return 
  65. '
  66. RIGHTROUTINE:
  67. For A=0 To STARNUM-1
  68.    Add X(A),COUNT(A)*STARFLAG
  69.    If X(A)=<0 Then X(A)=320
  70.    Sprite A+8,X Hard(0,X(A)),Y Hard(0,Y(A)),5
  71. Next 
  72. If CURBOB<>3 Then Bob 1,160,100,3
  73. CURBOB=3
  74. Sprite Update 
  75. Return 
  76. '
  77. LEFTROUTINE:
  78. For A=0 To STARNUM-1
  79.    Add X(A),-COUNT(A)*STARFLAG
  80.    If X(A)=>320 Then X(A)=0
  81.    Sprite A+8,X Hard(0,X(A)),Y Hard(0,Y(A)),5
  82. Next 
  83. If CURBOB<>4 Then Bob 1,160,100,4
  84. CURBOB=4
  85. Sprite Update 
  86. Return 
  87. '
  88. ' increment,Xval,Yval
  89. STARDAT:
  90. Data -1,3,10
  91. Data -2,10,40
  92. Data -2,11,130
  93. Data -6,45,199
  94. Data -3,23,20
  95. Data -4,140,56
  96. Data -3,260,176
  97. Data -4,170,87
  98. Data -3,80,69
  99. Data -6,290,120
  100. Data -5,20,180
  101. Data -2,300,150
  102. Data -5,73,120
  103. Data -3,160,176
  104. Data -4,70,127
  105. Data -3,280,169
  106. Data -6,310,190
  107. Data -5,120,180
  108. Data -2,300,150
  109. Data -5,173,120
  110. '
  111. Procedure INIT_SPRITES
  112.    Get Sprite Palette 
  113.    For S=0 To 3
  114.       For C=0 To 2
  115.          Colour S*4+C+17,$FFF
  116.       Next C
  117.    Next S
  118. End Proc