displaying text while the program is loading

BlitzPlus Forums/BlitzPlus Beginners Area/displaying text while the program is loading

bryan970(Posted 2007) [#1]
I have a game where I am loading a bunch of images and sounds upfront so when the executable is launched it takes a while for the game to start. Is there a way I can display 'Loading' maybe even with a status bar while this is happening?


AJirenius(Posted 2007) [#2]
Well there is nothing stopping you to write "Loading" at the screen and flip it before you start loading all your gamedata (images and sound). If you want a statusbar you might need to call a function between every load or maybe set up a function for the loading itself retrieving loading data and in between always update the statusbar. Just remember to flip it :)


Senzak(Posted 2007) [#3]
I hope this helps, this is a complete example of something that might be like what you want

;This method creates a GUI window on the desktop and sets a progress bar on it
;Lets say you have 5 images and 5 sounds to load
loadwindow = CreateWindow("",(ClientWidth(Desktop()) / 2) - 225,(ClientHeight(Desktop()) / 2) - 125,450,250,Desktop(),0)
label = CreateLabel("Loading...",205,100,70,15,loadwindow)
loadbar = CreateProgBar(140,135,180,20,loadwindow)
;Now just update the progbar after each image and sound
a = LoadImage("a.bmp")
UpdateProgBar(loadbar,.1);Update it based on the amount of images and sounds that have been loaded divided by the total, in this case, 1 / 10 = .1
b = LoadImage("b.bmp")
UpdateProgBar(loadbar,.2)
c = LoadImage("c.bmp")
UpdateProgBar(loadbar,.3)
d = LoadImage("d.bmp")
UpdateProgBar(loadbar,.4)
e = LoadImage("e.bmp")
UpdateProgBar(loadbar,.5);Halfway done now, time for the sounds
f = LoadSound("f.wav")
UpdateProgBar(loadbar,.6)
g = LoadSound("g.wav")
UpdateProgBar(loadbar,.7)
h = LoadSound("h.wav")
UpdateProgBar(loadbar,.8)
i = LoadSound("i.wav")
UpdateProgBar(loadbar,.9)
j = LoadSound("j.wav")
UpdateProgBar(loadbar,1)
Delay 2000;Wait 2 seconds just so people can get a good look at the progress bar
FreeGadget loadwindow;Get rid of loadwindow and all its child gadget, now you can start the main program code
;At least on my computer it just loaded them all so fast that the progress bar looked like it started at the top, but if you deal with larger images/sounds, the load times will be longer
;If you want to see the progress bar go up slowly, you could put a delay statement after each UpdateProgBar
;Also, you can add a canvas and decorate up the load screen a bit


Andres(Posted 2007) [#4]
it would be easier with select:
loading% = True, index% = 1, totalindex% = 5
Repeat
	UpdateLoadingBar(Float index% / totalindex%)
	index% = index% + 1
	
	Select index%
		Case 1
			LoadImage()
		Case 2
			LoadSound()
		Case 3
			LoadSomeMore()
		Case 4
			LoadEvenMore()
		Case 5
			loading% = False
	End Select
Until Not loading%



bryan970(Posted 2007) [#5]
thanks