I've build a small snippet to make a loader that display a progress image (or progression bar ) a bit like in the game "Dark Age Of Camelot".
That snippet use 3 functions and 1 external file that you can define yourself as follow :
- top part of bitmap contain : origin image ( 0% loaded )
- bottom part of bitmap contain : 100% loaded image.
for example a 192x128 sized bitmap will contain :
- 0,0,192,64 : origin image
- 0,64,192,128 : 100% loaded image
+ Code SnippetRem
Rem Custom-Loader Using Sprite Image.
Rem
Rem That program use : Bitmap 1 , Sprite 65535 and Image 65535
Rem
Set Display mode 320,240,16
Sync Rate 75 : Sync On : Sync
Rem We initialize loader by loading the needed image to bitmap #1
_Initialize_Loader("gfx\_Loader_Display.jpg")
Rem beginning of the main loop for that example.
Repeat
Rem We display percentage from 0.1 up to 100.0 using step 0.1
_Percent#=_Percent#+0.1 : _Percent=int(_percent#)
_Display_Loader(_percent)
Sync
Until spacekey()=1 or _percent=100
Rem We quit the loader by freeing bitmap , sprite and image used.
_Release_Loader()
End
Rem We initialize loader by loading the needed image to bitmap #1
Function _Initialize_Loader(_file$)
_INITIALIZED=0
if _file$="" then file$="gfx\_Loader_Display.jpg"
if file exist(_file$)=1
load bitmap _file$,1
xsize=bitmap width(1) : ysize=bitmap height(1)/2
_INITIALIZED=1
Endif
EndFunction _INITIALIZED
Rem We quit the loader by freeing bitmap , sprite and image used.
Function _Release_Loader()
if image exist(65535)=1 then delete image 65535
if bitmap exist(1)=1 then delete bitmap 1
Endfunction
Rem Display percent using 1 sprite.
Function _Display_Loader(_pourcentage)
_SUCCESS=0
if bitmap exist(1)=1
_SUCCESS=1
Set Current Bitmap 1
xsize=bitmap width(1) : ysize=bitmap height(1)/2
_1percent#=xsize/100.0 : xget=_1percent#*_pourcentage
if xgetxsize-1 then xget=xsize-1
copy bitmap 1,0,ysize,xget,(ysize*2)-1,1,0,0,xget,ysize-1
get image 65535,0,0,xsize,ysize
xpos=(bitmap width(0)-xsize)/2
ypos=(bitmap height(0)-ysize)/2
Set Current Bitmap 0
Sprite 65535,xpos,ypos,65535
Endif
Endfunction _SUCCESS