/// <summary> /// Resumes the screen. /// </summary> private void resumeScreen() { if (bitmapBuffer != null) { Graphics graphics = Graphics.FromImage(bitmapBuffer); graphics.Clear(Color.Black); SizeF titleTextSize = graphics.MeasureString("DX Ball", MainTitleFont); mainTitle.IncreaseAlpha(4, 251); graphics.DrawString("DX Ball", MainTitleFont, mainTitle.TitleBrush, new PointF((960f - titleTextSize.Width) / 2, (720f - titleTextSize.Height) / 2)); if (playTitle.Focused) { playTitle.IncreaseAlpha(5, 250); } else { playTitle.DecreaseAlpha(5, 170); } if (highScoresTitle.Focused) { highScoresTitle.IncreaseAlpha(5, 250); } else { highScoresTitle.DecreaseAlpha(5, 170); } if (exitTitle.Focused) { exitTitle.IncreaseAlpha(5, 250); } else { exitTitle.DecreaseAlpha(5, 170); } if (optionTitle.Focused) { optionTitle.IncreaseAlpha(5, 250); } else { optionTitle.DecreaseAlpha(5, 170); } SizeF playTextSize = graphics.MeasureString("Resume Game", UpBoardFont); graphics.DrawString("Resume Game", UpBoardFont, playTitle.TitleBrush, new Point(380, 400)); playTitle.Width = (int)playTextSize.Width; playTitle.Height = (int)playTextSize.Height; SizeF highScoresTextSize = graphics.MeasureString("High Scores", UpBoardFont); graphics.DrawString("High Scores", UpBoardFont, highScoresTitle.TitleBrush, new PointF(highScoresTitle.X, 450)); highScoresTitle.Width = (int)highScoresTextSize.Width; highScoresTitle.Height = (int)highScoresTextSize.Height; SizeF exitTextSize = graphics.MeasureString("Exit Game", UpBoardFont); graphics.DrawString("Exit Game", UpBoardFont, exitTitle.TitleBrush, new PointF(exitTitle.X, exitTitle.Y)); exitTitle.Width = (int)exitTextSize.Width; exitTitle.Height = (int)exitTextSize.Height; SizeF optionTextSize = graphics.MeasureString("Options", UpBoardFont); graphics.DrawString("Options", UpBoardFont, optionTitle.TitleBrush, new PointF(optionTitle.X, optionTitle.Y)); optionTitle.Width = (int)optionTextSize.Width; optionTitle.Height = (int)optionTextSize.Height; Invalidate(); MainMenu = false; return; } }
private void Draw() { if (bitmapBuffer != null) { Graphics graphics = Graphics.FromImage(bitmapBuffer); graphics.Clear(Color.Black); if (MainMenuOpening) { SizeF titleTextSize = graphics.MeasureString("DX Ball", MainTitleFont); mainTitle.IncreaseAlpha(4, 251); graphics.DrawString("DX Ball", MainTitleFont, mainTitle.TitleBrush, new PointF((960f - titleTextSize.Width) / 2, (720f - titleTextSize.Height) / 2)); Invalidate(); return; } if (MainMenu) { SizeF titleTextSize = graphics.MeasureString("DX Ball", MainTitleFont); graphics.DrawString("DX Ball", MainTitleFont, mainTitle.TitleBrush, new PointF((960f - titleTextSize.Width) / 2, (720f - titleTextSize.Height) / 2)); if (playTitle.Focused) { playTitle.IncreaseAlpha(5, 250); } else { playTitle.DecreaseAlpha(120); } if (highScoresTitle.Focused) { highScoresTitle.IncreaseAlpha(5, 250); } else { highScoresTitle.DecreaseAlpha(120); } if (exitTitle.Focused) { exitTitle.IncreaseAlpha(5, 250); } else { exitTitle.DecreaseAlpha(120); } SizeF playTextSize = graphics.MeasureString("Play Game", UpBoardFont); graphics.DrawString("Play Game", UpBoardFont, playTitle.TitleBrush, new Point(playTitle.X, playTitle.Y)); playTitle.Width = (int)playTextSize.Width; playTitle.Height = (int)playTextSize.Height; SizeF highScoresTextSize = graphics.MeasureString("High Scores", UpBoardFont); graphics.DrawString("High Scores", UpBoardFont, highScoresTitle.TitleBrush, new PointF(highScoresTitle.X, highScoresTitle.Y)); highScoresTitle.Width = (int)highScoresTextSize.Width; highScoresTitle.Height = (int)highScoresTextSize.Height; SizeF exitTextSize = graphics.MeasureString("Exit Game", UpBoardFont); graphics.DrawString("Exit Game", UpBoardFont, exitTitle.TitleBrush, new PointF(exitTitle.X, exitTitle.Y)); exitTitle.Width = (int)exitTextSize.Width; exitTitle.Height = (int)exitTextSize.Height; Invalidate(); return; } if (ScoreOnBoard < Score - 10000) { ScoreOnBoard += 1000; } else if (ScoreOnBoard < Score - 1000) { ScoreOnBoard += 100; } else if (ScoreOnBoard < Score - 100) { ScoreOnBoard += 10; } else if (ScoreOnBoard < Score) { ScoreOnBoard++; } else if (ScoreOnBoard > Score) { ScoreOnBoard = Score; } graphics.DrawString(String.Format("Score: {0}", ScoreOnBoard), UpBoardFont, Brushes.GreenYellow, new PointF(64f, 32f)); graphics.DrawString(String.Format("Level: {0}", Level), UpBoardFont, Brushes.Gold, new PointF(320f, 32f)); graphics.DrawImageUnscaled(Properties.Resources.ballnormal, 640, 40); graphics.DrawString(" x " + Life.ToString(), UpBoardFont, Brushes.Azure, new PointF(672f, 32f)); graphics.DrawString(String.Format("Angle: {0:0.0000}", balls[0].Angle), UpBoardFont, Brushes.AliceBlue, new PointF(64f, 64f)); graphics.DrawString(String.Format("Memory Usage: {0}", System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64), UpBoardFont, Brushes.AliceBlue, new PointF(320f, 64f)); graphics.FillRectangle(line.LineBrush, line.LineRectangle); foreach (DXWall wall in walls) { graphics.FillRectangle(wall.WallBrush, wall.WallRectangle); } foreach (Ball ball in balls) { graphics.FillRectangle(ball.BallBrush, ball.BallRectangle); } foreach (DXBox box in boxes) { graphics.FillRectangle(box.BoxBrush, box.BoxRectangle); } foreach (DXAnimation animation in animations) { if (animation.Visible) { graphics.FillRectangle(animation.PutAnimation(), animation.AnimationRectangle); } } if (GameOver) { SizeF gameOverTextSize = graphics.MeasureString("Game Over", GameOverFont); graphics.DrawString("Game Over", GameOverFont, Brushes.LightPink, new PointF((960f - gameOverTextSize.Width) / 2, (720f - gameOverTextSize.Height) / 2)); } if (LevelFinished) { SizeF levelFinishedTextSize = graphics.MeasureString("Level Finished", GameOverFont); graphics.DrawString("Level Finished", GameOverFont, Brushes.Indigo, new PointF((960f - levelFinishedTextSize.Width) / 2, (720f - levelFinishedTextSize.Height) / 2)); } Invalidate(); } }