It works pretty well, thanks
Glad it works on your end, but your problem now is not related to displaying the loading percentage it's more on how you implement your rendering routine for your drawables entities.
The initial problem I had was that during heavy loading, the draw call can be skipped a few times. So, sometimes, it would show the splash screen and sometimes not. I now wait for the first draw call to start the loading process.
I'm not sure whether you are using an engine or how you handle your drawable entities and how you implement your rendering parts. Assuming your just using plain MonoGame, when you say splash screen in my understanding this your background sprite image as shown below and the yellow label string is just a sprite font drawn using DrawString
This two are the only one I load first from my LoadingContent method:
/// LoadContent will be called once per game and is the place to load
/// all of your content.
protected override void LoadContent()
//*>> Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
//*>> Initial asset laoding
// 1. Load your sprite font
// 2. Load the Splash Background image
//*>> Entities creation
// 1. Create a sprite entity for your Backround sprite add it your collection of sprite
// 2. Create Label entity using your sprite font just update the text of this
// entity on your LoadingRoutine
Only one thing remains: Somehow, the splash screen bleeds over into the main game (is displayed on top of my menu, in fact, for a split second), once I start displaying it. This seems to be caused by changing the window size between splash screen display and normal game display. Any suggestions?
Things to search for are rendering order of spritebatch and dept order, I'll give u a hint there's a SpriteSortMode order on spritebatch Begin method and there is LayerDepth overload on Draw call. A DepthOrder properties on your 2D entities would be nice and pass that as DepthOrder when Drawing.