示例#1
0
        public override void Update(double delta, SquashGame game)
        {
            // TODO: use this only once, when entering main menu
            game.ShowCursor();

            int mouse_x = game.mouseState.X;
            int mouse_y = game.mouseState.Y;

            if (start_rect.Contains(mouse_x, mouse_y))
            {
                hover = 1;
            }
            else if (diff_rect.Contains(mouse_x, mouse_y))
            {
                hover = 2;
            }
            else if (quit_rect.Contains(mouse_x, mouse_y))
            {
                hover = 3;
            }
            else
            {
                hover = 0;
            }

            // mouse clicking

            if (game.mouseState.LeftButton == ButtonState.Pressed)
            {
                mouseClick = true;
            }
            else if (mouseClick == true)
            {
                mouseClick = false;

                // Left mouse button click detected:

                switch (hover)
                {
                case 1:
                    game.ShowGameMode();
                    break;

                case 2:
                    // it is possible to cast enum into int!
                    int current_diff = (int)difficulty;
                    if (mouse_x < diff_rect.Center.X && current_diff > 0)
                    {
                        difficulty = (Difficulty)(current_diff - 1);
                    }
                    else if (mouse_x > diff_rect.Center.X && current_diff < 2)
                    {
                        difficulty = (Difficulty)(current_diff + 1);
                    }


                    break;

                case 3:
                    game.Exit();
                    break;

                default:
                    // whoops
                    break;
                }
            }
        }