/// <summary> /// Draws the game from background to foreground. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { // Everything after this call will be affected by the lighting system. penumbra.BeginDraw(); graphics.GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(SpriteSortMode.Immediate, null, null, null, null, null, globalTransformation); level.Draw(gameTime, spriteBatch); spriteBatch.End(); // Draw the actual lit scene. penumbra.Draw(gameTime); // Draw stuff that is not affected by lighting (UI, etc). spriteBatch.Begin(SpriteSortMode.Immediate, null, null, null, null, null, globalTransformation); DrawHud(); spriteBatch.End(); base.Draw(gameTime); }
/// <summary> /// Draws the game from background to foreground. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.CornflowerBlue); Vector3 screenScalingFactor; float horScaling = (float)GraphicsDevice.PresentationParameters.BackBufferWidth / baseScreenSize.X; float verScaling = (float)GraphicsDevice.PresentationParameters.BackBufferHeight / baseScreenSize.Y; screenScalingFactor = new Vector3(horScaling, verScaling, 1); Matrix globalTransformation = Matrix.CreateScale(screenScalingFactor); spriteBatch.Begin(SpriteSortMode.Immediate, null, null, null, null, null, globalTransformation); level.Draw(gameTime, spriteBatch); DrawHud(); spriteBatch.End(); base.Draw(gameTime); }