; #Code Start ; *************************************** ; *** Flood effect V1.0 *** ; *** From the effects library by *** ; *** Alex Moon *** ; *************************************** ; This routine does the flood effect known from several demos, ; and looks quite good. ; First of all, load a bitmap:) f$="Source:dune/gfx/64/tiles.lbm" ; Insert your own filename here ILBMInfo f$ ; Get bitmap info w=ILBMWidth: h=ILBMHeight: d=ILBMDepth BitMap 0,w,h,d ; Setup the correct bitmap BitMap 1,w,h,d ; Setup a matching bitmap LoadBitMap 0,f$,0 ; load it tpe.l=d: If(CheckAGA) tpe+$13000 ; define coplist type ; and use AGA palette mode, if ; AGA chipset present InitCopList 0,44,256,tpe,0,2^d,0 ; Init the coplist VWait 50 BLITZ ; do display stuff CreateDisplay 0 DisplayBitMap 0,1 DisplayPalette 0,0 ;Flood from bottom to top Use BitMap 1 ; loop from 0 to bitmap height -1 (for each line) For i=0 To h-1 ; draw the current line from bottom to i For j=h-1 To i+1 Step -1 ; using blockscroll for speed BlockScroll 0,i,w,1,0,j,0 Next VWait; equalize the speed. Next ;UnFlood from bottom To top Use BitMap 1 ; loop from 0 to bitmap height -1 (for each line) For i=h-1 To 0 Step -1 ; draw the current line from bottom to i For j=h-1 To i+1 Step -1 ; using blockscroll for speed BlockScroll 0,i,w,1,0,j,0 Next VWait; equalize the speed. Next Cls 0 ;Flood from top To bottom Use BitMap 1 ; loop from 0 to bitmap height -1 (for each line) For i=h-1 To 0 Step -1 ; draw the current line from top to i For j=0 To i ; using blockscroll for speed BlockScroll 0,i,w,1,0,j,0 Next VWait; equalize the speed. Next ;Flood from top&bottom to the middle Use BitMap 1 ; loop from 0 to bitmap height / 2 (for half the number of lines) For i=0 To h/2 ; draw the current line from bottom to i ti=h/2+i; There's no reason to calculate this every cycle, is there? For j=h-1 To ti+1 Step -1 ; using blockscroll for speed BlockScroll 0,ti,w,1,0,j,0 Next ; draw the current line from top to h/2-i ti=h/2-i; There's no reason to calculate this every cycle, is there? For j=0 To ti ; using blockscroll for speed BlockScroll 0,ti,w,1,0,j,0 Next Next MouseWait; wait, so you can see the result:) End ;# Code End