Esempio n. 1
0
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.Black);

            UIScaleMatrix = Matrix.CreateScale(UIScale);

            switch (gameMode)
            {
            case GameMode.MainMenu:
            {
                spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, UIScaleMatrix);
                mainMenu.DrawSelf(spriteBatch);
                spriteBatch.End();
                break;
            }

            case GameMode.InGame:
            {
                // Apply Zoom
                InGameMatrix = Matrix.CreateScale(GameScale);

                // Apply Translation
                InGameMatrix = Camera.Translate(InGameMatrix);

                spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, Matrix.CreateScale(2));
                //spriteBatch.Draw(background, ViewPort.Bounds, Color.White);
                spriteBatch.End();

                spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, InGameMatrix);

                // Draw Tiles before player to not cover him
                level.Draw(spriteBatch);
                player.Draw(spriteBatch);

                spriteBatch.End();

                //Test state for Debug Info
                if (UIActive)
                {
                    spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, UIScaleMatrix);
                    testState.DrawSelf(spriteBatch);
                    spriteBatch.End();
                }
                break;
            }

            case GameMode.DeathScreen:
            {
                spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, UIScaleMatrix);
                deathState.DrawSelf(spriteBatch);
                spriteBatch.End();
                break;
            }

            default:
                throw new Exception("Tried to update Invalid GameMode");
            }

            if (MouseText != null)
            {
                spriteBatch.DrawString(font, MouseText, Input.mouse.Position.ToVector2() + new Vector2(10), Color.White);
                MouseText = null;
            }
            base.Draw(gameTime);
        }