home *** CD-ROM | disk | FTP | other *** search
/ Amoszine 5 / Amoszine 5.adf / LHA_ARCHIVES / POWERBOBS_DEMO.lha / AZ_POWERBOB_DEMO / powerbobs_shootemup.AMOS / powerbobs_shootemup.amosSourceCode
Encoding:
AMOS Source Code  |  1980-02-10  |  2.4 KB  |  99 lines

  1. ' A SIMPLE SHOOT AND DODGE THE ASTEROIDS GAME
  2. ' CODED BY ANDY DOBINSON 
  3. ' notes ;
  4. ' extra 2-3 bobs per frame  when using power bobs (A500+)
  5. ' when compiled a jerk appears exactly every second....why..!(amos pro)
  6. ' normal amos bob commands handles 9 per frame (16 colours)  
  7. '              power bobs handles 12 per frame  "   "    " 
  8. ' BUGS: system has locked up twice once the program has been running a 
  9. '       long time......? 
  10. Load "dh1:power_bobs/shootemup.abk"
  11. Screen Close 0
  12. Amos Lock 
  13. Screen Open 1,320,192,16,L
  14. Flash Off : Curs Off : Cls 0 : Hide On 
  15. Get Sprite Palette 
  16. Unpack 10 To 1
  17. X=50 : Y=100
  18. SFIRE=False
  19. Dim X(10),Y(10),SPEED(10),IMAGE(10)
  20. For T=1 To 10
  21.    X(T)=320 : Y(T)=Rnd(150) : SPEED(T)=Rnd(4)+1 : IMAGE(T)=3
  22. Next T
  23. Double Buffer : Autoback 0 : Bob Update Off 
  24.  Extension_13_0006 12
  25.  Extension_13_0094 True
  26. Make Mask 
  27. For T=1 To 12 : Extension_13_003C T,40 : Next T
  28. Wait 50
  29. Break Off : Extension_12_0016 : E=Execall(-132)
  30. Repeat 
  31.    If Jup(1)
  32.       Add Y,-4
  33.    End If 
  34.    If Jdown(1)
  35.       Add Y,4
  36.    End If 
  37.    If Jright(1)
  38.       Add X,4
  39.    End If 
  40.    If Jleft(1)
  41.       Add X,-4
  42.    End If 
  43.    If Fire(1) and SFIRE=False
  44.       SFIRE=True
  45.       A=X : B=Y
  46.       Y1=B : Y2=B : X3=A
  47.    End If 
  48.    For T=1 To 10
  49.       Add X(T),-SPEED(T)
  50.       If X(T)<0 Then X(T)=320 : Y(T)=Rnd(150) : SPEED(T)=Rnd(4)+1
  51. '*** phew this is slow 
  52. '      Pbob T,X(T),Y(T),3
  53.    Next T
  54. '*** get some more speed hehe... 
  55.     Extension_13_0110 Varptr(X(0)),Varptr(Y(0)),Varptr(IMAGE(0)),1 To 10
  56.    If SFIRE
  57.       X1=A
  58.       X2=A
  59.       Y3=B
  60.       If X3<320
  61.          Add X3,6
  62.           Extension_13_0124 12,X3,Y3,2
  63.       Else 
  64.          X3=320
  65.          SFIRE=False
  66.           Extension_13_002A 12
  67.       End If 
  68.    End If 
  69.     Extension_13_0124 11,X,Y,1
  70.    _BLOCK_HIT= Extension_13_00BA(12,1 To 10)
  71.    If _BLOCK_HIT
  72.       _BOB= Extension_13_00C6(-1)
  73.       X(_BOB)=320
  74.       Y(_BOB)=Rnd(150)
  75.       SPEED(_BOB)=Rnd(4)+1
  76.        Extension_13_0124 _BOB,X(_BOB),Y(_BOB),3
  77.       SFIRE=False
  78.        Extension_13_002A 12
  79.    End If 
  80.    SHIP_HIT= Extension_13_00BA(11,1 To 10)
  81.    If SHIP_HIT
  82.       SHIP_SHAKE=True
  83.       SHAKER=0
  84.    End If 
  85.    If SHIP_SHAKE
  86.       Inc SHAKER
  87.        Extension_13_0124 11,X,Y+Rnd(9)-Rnd(7),1
  88.       If SHAKER=40
  89.          SHIP_SHAKE=False
  90.       End If 
  91.    End If 
  92.     Extension_13_005E 1 To 12
  93.     Extension_13_0072 1 To 12
  94.    Screen Swap 
  95.    Wait Vbl 
  96. Until Extension_12_0392 
  97. Erase 1 : Erase 10
  98.  Extension_12_0006 : E=Execall(-138)
  99. Amos Unlock