Esempio n. 1
0
        /// <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;
            }
        }
Esempio n. 2
0
        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();
            }
        }