home *** CD-ROM | disk | FTP | other *** search
/ Amoszine 6 / Amoszine 6 (Disk 2 of 2).adf / paul_nordovics.lha / P_Nordovics / scary_monster.AMOS / scary_monster.amosSourceCode < prev   
Encoding:
AMOS Source Code  |  1992-02-26  |  3.4 KB  |  168 lines

  1. ' *************************************************************  
  2. '
  3. '                 HOW TO GET A BIG MONSTER MOVING  
  4. '                 ===============================
  5. '
  6. '                 ON SCREEN WITHOUT ANY SLOW DOWN  
  7. '                 ===============================
  8. '
  9. '                 i.e. CHEAT! using screen offset
  10. '
  11. '                       /\/\/\/\/\/\/\/\/\ 
  12. '                       By: Paul Nordovics 
  13. '                       \/\/\/\/\/\/\/\/\/   
  14. '
  15. ' *************************************************************
  16. '
  17. Hide 
  18. '
  19. ' *************************
  20. ' put monster onto screen 0
  21. ' *************************  
  22. Unpack 1 To 0
  23. Screen Hide 
  24. '
  25. ' ******************** 
  26. ' open nice big screen 
  27. ' ******************** 
  28. Screen Open 1,960,256,8,Lowres
  29. Screen Hide 
  30. Curs Off : Flash Off 
  31. Get Palette 0
  32. Cls 0
  33. '
  34. ' ******************************** 
  35. ' copy scary monster to big screen 
  36. ' ******************************** 
  37. Screen Copy 0,0,0,320,256 To 1,320,0
  38. '  
  39. ' *****************
  40. ' set up big screen
  41. ' *****************
  42. _SCREEN_OFFSET=640
  43. Screen Offset 1,_SCREEN_OFFSET,0
  44. Screen Show 1
  45. '
  46. ' ************** 
  47. ' set up monster 
  48. ' ************** 
  49. Dim MONSTER_LUT(8)
  50. Restore MONSTER_LUT
  51. For K=0 To 8
  52.    Read MONSTER_LUT(K)
  53. Next K
  54. MONSTER_LUT_POINTER=0
  55. '
  56. MONSTER_SPEED=8
  57. '
  58. ' -------------------------------------------------------------
  59. '
  60. ' *************************************************************
  61. '                            MAIN LOOP 
  62. ' *************************************************************
  63. MAIN:
  64. Do 
  65.    Wait Vbl 
  66.    Gosub _DO_MONSTER
  67.    Screen Offset 1,_SCREEN_OFFSET,0
  68. Loop 
  69. '
  70. ' -------------------------------------------------------------
  71. '
  72. _DO_MONSTER:
  73. ' *********
  74. ' get state
  75. ' *********
  76. If MONSTER_STATE=0
  77.    Repeat 
  78.       MONSTER_STATE=MONSTER_LUT(MONSTER_LUT_POINTER)
  79.       If MONSTER_STATE=-1
  80.          MONSTER_LUT_POINTER=0
  81.       End If 
  82.    Until MONSTER_STATE<>-1
  83.    Add MONSTER_LUT_POINTER,1
  84. End If 
  85. ' ********** 
  86. ' move right 
  87. ' ********** 
  88. If MONSTER_STATE=1
  89.    Add _SCREEN_OFFSET,-MONSTER_SPEED
  90.    If _SCREEN_OFFSET<=0
  91.       _SCREEN_OFFSET=0
  92.       MONSTER_STATE=0
  93.    End If 
  94. End If 
  95. ' *********
  96. ' move left
  97. ' *********
  98. If MONSTER_STATE=2
  99.    Add _SCREEN_OFFSET,MONSTER_SPEED
  100.    If _SCREEN_OFFSET>=640
  101.       _SCREEN_OFFSET=640
  102.       MONSTER_STATE=0
  103.    End If 
  104. End If 
  105. ' ************** 
  106. ' move to middle 
  107. ' ************** 
  108. If MONSTER_STATE=3
  109.    If _SCREEN_OFFSET>320
  110.       Add _SCREEN_OFFSET,-MONSTER_SPEED
  111.       If _SCREEN_OFFSET<320
  112.          _SCREEN_OFFSET=320
  113.       End If 
  114.    End If 
  115.    If _SCREEN_OFFSET<320
  116.       Add _SCREEN_OFFSET,MONSTER_SPEED
  117.       If _SCREEN_OFFSET>320
  118.          _SCREEN_OFFSET=320
  119.       End If 
  120.    End If 
  121.    If _SCREEN_OFFSET=320
  122.       MONSTER_STATE=0
  123.    End If 
  124. End If 
  125. ' *****
  126. ' flash
  127. ' *****
  128. If MONSTER_STATE=4
  129.    Gosub _GET_MONSTER_COLOURS
  130.    MONSTER_STATE=0
  131. End If 
  132. ' **** 
  133. ' wait 
  134. ' **** 
  135. If MONSTER_STATE=5
  136.    Wait 25
  137.    MONSTER_STATE=0
  138. End If 
  139. Return 
  140. '
  141. ' -------------------------------------------------------------
  142. '
  143. _GET_MONSTER_COLOURS:
  144. For MONSTER_LOOP=0 To 49
  145.    Wait Vbl 
  146.    K=Rnd(2)
  147.    If K=0 Then Restore MONSTER_COLOURS0
  148.    If K=1 Then Restore MONSTER_COLOURS1
  149.    If K=2 Then Restore MONSTER_COLOURS2
  150.    For L=2 To 6
  151.       Read V
  152.       Colour L,V
  153.    Next L
  154. Next MONSTER_LOOP
  155. Return 
  156. '
  157. ' -------------------------------------------------------------
  158. '
  159. MONSTER_LUT:
  160. Data 1,2,1,3,5,4,5,2,-1
  161. '
  162. MONSTER_COLOURS0:
  163. Data $3,$6,$9,$C,$F
  164. MONSTER_COLOURS1:
  165. Data $300,$600,$900,$C00,$F00
  166. MONSTER_COLOURS2:
  167. Data $30,$60,$90,$C0,$F0
  168. '