home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / sourcecode / subroutines / pic_roller.amos / pic_roller.amosSourceCode < prev    next >
AMOS Source Code  |  1993-07-31  |  2KB  |  140 lines

  1. ' *** Grab Command Line, If Any. 
  2.  
  3. C$=Command Line$
  4.  
  5. ' *** Error Bit. 
  6.  
  7. On Error Goto ER
  8.  
  9. ' ********************** 
  10. ' *** PICTURE ROLLER *** 
  11. ' ********************** 
  12.  
  13. ' *** This Routine Load An IFF Picture, And Roll It Onto The Screen. 
  14.  
  15. ' *** Roller Height, Try 5 For A Faster Roller.  
  16.  
  17. H=10
  18.  
  19. ' *** If No Command Line, Then Display File-Requester. 
  20.  
  21. If C$=""
  22.    C$=Fsel$("","","LOAD IFF PICTURE")
  23. End If 
  24.  
  25. ' *** Load IFF Picture & Hide Screen.
  26.  
  27. Load Iff C$,0
  28. Screen Hide 0
  29.  
  30. ' *** Find What Screen Mode Picture Is In. 
  31. '     AMOS-Pro Users Just Replace The Following 7 Lines With SM=Screen Mode. 
  32. SM=0
  33. If Screen Colour<17 and Screen Width>320
  34.    SM=Hires
  35. End If 
  36. If Screen Height>256
  37.    SM=SM+Laced
  38. End If 
  39.  
  40. ' *** Open Work Screen.  
  41.  
  42. Screen Open 1,Screen Width,Screen Height,Screen Colour,SM
  43. Screen Hide 1
  44. Curs Off 
  45. Flash Off 
  46. Cls 0
  47. Get Palette 0
  48.  
  49. ' *** Copy Picture To Work Screen. 
  50.  
  51. Screen Copy 0 To 1
  52.  
  53. ' *** Re-Open Screen 0, But A bit Bigger, For Scroll Effect. 
  54.  
  55. Screen Open 0,Screen Width,Screen Height+1,Screen Colour,SM
  56. Screen Hide 0
  57. Curs Off 
  58. Flash Off 
  59. Cls 0
  60. Get Palette 1
  61.  
  62. ' *** Copy Picture Onto Screen 0, And Close Work Screen. 
  63.  
  64. Screen Copy 1 To 0
  65. Screen Close 1
  66.  
  67. ' *** Hide Mouse & Picture.
  68.  
  69. Hide 
  70. Screen Hide 0
  71.  
  72. ' *** Open & Hide Roller Screen. 
  73.  
  74. Screen Open 1,Screen Width,H*2,Screen Colour,Lowres
  75. Curs Off 
  76. Flash Off 
  77. Cls 0
  78. Screen Hide 1
  79.  
  80. ' *** Open Display Screen. 
  81.  
  82. Screen Open 2,Screen Width,Screen Height(0)+(H*2),Screen Colour,SM
  83. Screen Display 2,,,,Screen Height(0)
  84. Curs Off 
  85. Flash Off 
  86. Get Palette 0
  87. Cls 0
  88.  
  89. ' *** Roll Picture.
  90.  
  91. For Y=1 To Screen Height(0)-1
  92.    
  93.    ' *** Copy Part & Enlarge On Roller Screen.
  94.    
  95.    YY=Y
  96.    For LOP=Y To Y+H
  97.       Screen Copy 0,0,LOP+(H*4),Screen Width,(LOP+(H*4))+1 To 1,0,(LOP-YY)*2
  98.       Screen Copy 0,0,LOP+(H*4),Screen Width,(LOP+(H*4))+1 To 1,0,(LOP-YY)*2+1
  99.    Next LOP
  100.    
  101.    ' *** Grab Part As Block.
  102.    
  103.    Screen 1
  104.    Get Block 1,0,0,Screen Width,Screen Height
  105.    
  106.    ' *** Flip Block Vertically, And Place On View Screen. 
  107.    
  108.    Screen 2
  109.    Vrev Block 1
  110.    Put Block 1,0,Y
  111.    Screen Copy 0,0,Y-H,Screen Width,Y+1 To 2,0,Y-H
  112.    
  113.    ' *** REM Out The Next Command If You Want The Roller To Speed Up. 
  114.    
  115.    Wait Vbl 
  116.    
  117. Next Y
  118.  
  119. ' *** Close Work & Roller Screen.
  120.  
  121. Screen Close 0
  122. Screen Close 1
  123.  
  124. ' *** Wait For Key Or Mouse Press. 
  125.  
  126. Repeat 
  127. Until Inkey$<>"" or Mouse Key
  128.  
  129. ' *** Close View Screen & Quit.
  130.  
  131. Screen Close 2
  132. Direct 
  133.  
  134. ' *** This Is Just The Error Routine.
  135.  
  136. ER:
  137. Resume ER2
  138. ER2:
  139. Boom 
  140. Edit