home *** CD-ROM | disk | FTP | other *** search
/ Amiga Computing 66 / ac066b.adf / AMOS.DMS / AMOS.adf / amos_3d_demos / Galaxy_Thrust.AMOS / Galaxy_Thrust.amosSourceCode < prev    next >
AMOS Source Code  |  1991-07-30  |  5KB  |  183 lines

  1. '
  2. '                           Galaxy Thrust  
  3. '
  4. '                          by  Nick Harper 
  5. '
  6. '
  7. '                 (c) 1991 Europress Software Ltd
  8. '
  9. Curs Off 
  10. Screen Open 0,320,180,16,Lowres
  11. SETUP
  12. Dim X(5),Y(5),Z(5),N(5),M(3)
  13. STRT:
  14. Screen Copy 1,86,40,235,116 To 0,84,40 : Screen Swap 
  15. Fade 2,0,$FFF,$7CF,$8F,$4F,$FE0,$F80,$F30,$FFA,$FFF,$F00,$CF,$FF2,$F4F,$F80
  16. Repeat 
  17. Until Mouse Key
  18. Cls 0
  19.  Extension_4_04D6 ":AMOS_3D_demos/objects"
  20.  Extension_4_0036 1,"game_ship",0,0,30000,0,0,0 : Extension_4_0036 2,"game_ship",0,0,40000,0,0,0
  21. X Mouse=280 : Y Mouse=132
  22. For Z=1 To 2 : N(Z)=1 : Next Z
  23. TM=0 : SC=0 : HL=183 : MS=3 : DEAD=0 : CT=0 : Gosub HEALTH : Gosub SCORE : Gosub MISSILE
  24. Do 
  25.     Extension_4_053C 
  26.     Extension_4_0318 
  27.    Paste Bob 142,72,1
  28.    Screen Swap 
  29.    Wait Vbl 
  30.    Gosub ZONS
  31.    Gosub HIT
  32.    Gosub TURN
  33.    Gosub OFF
  34.    Gosub SPIN
  35.    Gosub MISS
  36.    Gosub MOVE
  37.    If TM>0 Then Dec TM
  38.    If DEAD=1 Then Goto GO
  39.    If CT=0 Then Colour 0,0
  40.    If CT>0 Then Dec CT
  41. Loop 
  42. OFF:
  43. For Q=1 To 2
  44.    If Extension_4_013C(Q)<400 Then Extension_4_00EC Q,Rnd(2000)-1000,Rnd(2000)-1000,30000 : Extension_4_01A6 Q,0,0,0
  45. Next Q
  46. Return 
  47. TURN:
  48. For Q=1 To 2
  49.    If N(Q)=0 Then N(Q)=1 : Extension_4_0036 Q,"game_ship",Rnd(2000)-1000,Rnd(2000)-1000,30000,0,0,0
  50.    If N(4)=1 or Rnd(50)<>5 Then Goto UG
  51.    P=Rnd(1)+1
  52.    XP= Extension_4_0114(P) : YP= Extension_4_0128(P) : ZP= Extension_4_013C(P)
  53.    If ZP<6500 Then Goto UG
  54.     Extension_4_0036 4,"rocket",XP,YP,ZP,0,0,0 : N(4)=1 : Extension_4_01F8 4,0
  55.    UG:
  56.     Extension_4_0100 Q,-700
  57.    If Rnd(3)=0 Then Goto POON : 
  58.     Extension_4_018C Q,150*(Rnd(2)-1),200*(Rnd(2)-1),300*(Rnd(2)-1)
  59.    POON:
  60. Next Q
  61. Return 
  62. MISS:
  63. If N(4)=0 Then Return 
  64.  Extension_4_0100 4,300
  65. If Extension_4_013C(4)<-50 Then Extension_4_0328 4,0,0,0,20,1 : Extension_4_0090 4 : N(4)=0
  66. Return 
  67. HIT:
  68. For Z=4 To 7
  69.    If M(Z-4)=0 Then Goto NOPE
  70.    XX= Extension_4_0344(Z)
  71.    If N(4)=0 Then Goto NOPE
  72.    If XX=-1 Then Goto NOPE
  73.    Gosub SPLAT
  74.    NOPE:
  75. Next Z
  76. If Extension_4_0344(0)<>-1 Then Add HL,-10 : Boom : Colour 0,$FFF : CT=4 : Gosub HEALTH
  77. Return 
  78. SPIN:
  79. XP=(X Mouse-288)*25
  80. YP=(Y Mouse-140)*25
  81.  Extension_4_01A6 0,YP,XP,0
  82. If Mouse Key=0 or TM>0 or MS=0 Then Return 
  83. Z=1
  84. HMM:
  85. If M(Z)=0 Then Goto SHOT
  86. Inc Z
  87. If Z=4 Then Return 
  88. Goto HMM
  89. SHOT:
  90. M(Z)=1
  91.  Extension_4_0036 Z+4,"bullet",0,0,0,YP,XP,0
  92.  Extension_4_0100 Z+4,750 : TM=8 : Dec MS : Music Off : Sam Play 1
  93. Goto MISSILE
  94. MOVE:
  95. For Z=5 To 7
  96.    If M(Z-4)=0 Then Goto OOH
  97.     Extension_4_0100 Z,450
  98.    If Extension_4_013C(Z)>30000 Then Extension_4_0090 Z : M(Z-4)=0 : Inc MS : Gosub MISSILE : Dec HL : Gosub HEALTH
  99.    OOH:
  100. Next Z
  101. Return 
  102. ZONS:
  103. For Q=1 To 2
  104.     Extension_4_0328 Q,Q,0,0,0,700
  105. Next Q
  106. If N(4)=1 Then Extension_4_0328 4,4,0,0,0,250
  107. For Q=5 To 7
  108.    If M(Q-4)=1 Then Extension_4_0328 Q,Q,0,0,0,200
  109. Next Q
  110.  Extension_4_0328 0,0,0,0,0,500
  111. Return 
  112. Procedure SETUP
  113.    Get Disc Fonts 
  114.    Load ":amos_3d_demos/game.abk"
  115.     Extension_4_04D6 ":amos_3d_demos/objects"
  116.     Extension_4_0024 : Hide On : Cls 0 : Flash Off 
  117.     Extension_4_0054 180
  118.     Extension_4_0016 "game_ship"
  119.     Extension_4_0016 "rocket"
  120.     Extension_4_0016 "bullet"
  121.     Extension_4_0016 "game"
  122.     Extension_4_0016 "over"
  123.    Load ":AMOS_3d_demos/samples.abk"
  124.    Screen Open 1,320,200,16,Lowres : Screen To Back 1 : Load Iff ":AMOS_3d_demos/gamepic.iff",1 : Screen Hide 1
  125.    Screen Open 2,320,20,16,Lowres : Cls 0 : Screen To Front 2 : Screen Display 2,128,230,320,20
  126.    Flash Off : Get Palette(1)
  127.    Screen 0
  128.    Double Buffer : Autoback 0
  129.    Screen Copy 1,0,0,320,20 To 2,0,0
  130. End Proc
  131. SPLAT:
  132. SC=SC+ Extension_4_013C(XX)/10 : Extension_4_0328 XX,0,0,-500,20,1 : Extension_4_0090 XX : N(XX)=0 : Music Off : Sam Play 1,1,3500 : M(Z-4)=0 : Extension_4_0328 Z,0,0,500,20,1 : Extension_4_0090 Z : Inc MS : Gosub MISSILE
  133. SCORE:
  134. If SC>999999 Then SC=SC-1000000
  135. SC$=Str$(SC) : SC$=Mid$(SC$,2,7)
  136. If Len(SC$)<7 Then SC$=String$("0",7-Len(SC$))+SC$
  137. Screen 2 : Ink 0,1 : Text 260,12,SC$
  138. Z=Free
  139. Screen 0
  140. Return 
  141. MISSILE:
  142. Screen 2 : Ink 0 : Bar 210,5 To 240,13
  143. Screen 0
  144. If MS=0 Then Return 
  145. Screen Copy 1,210,5,208+(MS*11),14 To 2,210,5
  146. Return 
  147. HEALTH:
  148. HL=Min(HL,183)
  149. HL=Max(HL,0)
  150. Screen 2 : If HL>0 Then Ink 7 : Bar 9,5 To 9+HL,13
  151. If HL<183 Then Ink 0 : Bar 9+HL,5 To 193,13
  152. Screen 0
  153. If HL=0 Then DEAD=1
  154. Return 
  155. GO:
  156. For Z=1 To 4
  157.    If N(Z)=1 Then Extension_4_0090 Z
  158.    N(Z)=0
  159. Next Z
  160. For Z=5 To 7
  161.    If M(Z-4)=1 Then Extension_4_0090 Z
  162.    M(Z-4)=0
  163. Next Z
  164.  Extension_4_01A6 0,0,0,0 : Extension_4_0036 1,"game",-400,0,20000,0,0,0 : Extension_4_0036 2,"over",400,0,20000,0,0,0
  165. Colour 0,0
  166. For Z=1 To 46
  167.     Extension_4_00D4 1,0,0,-400 : Extension_4_00D4 2,0,0,-400
  168.     Extension_4_018C 1,0,0,2912 : Extension_4_018C 2,0,0,-2912
  169.     Extension_4_053C 
  170.     Extension_4_0318 
  171.    Screen Swap 
  172.    Wait Vbl 
  173. Next Z
  174. For Z=1 To 20
  175.     Extension_4_018C 1,0,-500,0 : Extension_4_018C 2,0,500,0
  176.     Extension_4_053C 
  177.     Extension_4_0318 
  178.    Screen Swap 
  179.    Wait Vbl 
  180. Next Z
  181. Wait 100 : Fade 2 : Wait 30
  182.  Extension_4_0090 1 : Extension_4_0090 2 : Cls 0
  183. Goto STRT