示例#1
0
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);



            spriteBatch.Begin();
            // Draw game and menu
            game.Draw(spriteBatch);
            menu.Draw(spriteBatch);

            // Draw speed text specifically by converting the float to an int with a 10% safety marginal and then converting it back to float and divide it by 10, creating a clean, one decimal, float (visually).
            menu.Pages[3].Buttons[1].Text[0] = "Speed: " + (float)(int)(options.Speed * 10.1f) / 10;

            // If play screen
            if (menu.PageSelection == 1)
            {
                // Look if mouse intersects pause button, if it does, change color from gray to white
                if (input.MousePointer.Intersects(pauseButton))
                {
                    spriteBatch.Draw(pauseButtonTexture, pauseButton = new Rectangle(0, 0, pauseButtonTexture.Width, pauseButtonTexture.Height), Color.White);
                }
                else
                {
                    spriteBatch.Draw(pauseButtonTexture, pauseButton = new Rectangle(0, 0, pauseButtonTexture.Width, pauseButtonTexture.Height), Color.Gray);
                }
            }

            // If highscore page, draw the highscore list
            if (menu.PageSelection == 2)
            {
                saveFile.Draw(spriteBatch, scoreBoardFont);
            }


            // If mouse moves, make it 100% visible and reset timer to 2 seconds
            if (input.MousePointer != input.PreviousMousePosition)
            {
                mouseVisibility = 1f;
                mouseTimer      = 2000;
            }
            // If mouse does not move, make the 2 second timer count downwards, until it reaches zero, that's when mouse visibility gets reduced by 16% every game tick
            else
            {
                mouseTimer -= (float)gameTime.ElapsedGameTime.TotalMilliseconds;
                if (mouseTimer < 0)
                {
                    mouseVisibility /= 1.16f;
                }
            }
            // Draw the mouse with it's visibility (on top of everything else)
            input.DrawMouse(spriteBatch, mouseTexture, mouseVisibility);

            spriteBatch.End();

            base.Draw(gameTime);
        }