Exemple #1
0
        public void MainMenu(List <MenuItem> menuItem)
        {
            int activeItem = 0;

            for (int i = 0; i < menuItem.Count(); ++i)
            {
                if (menuItem[i].active)
                {
                    activeItem = i;
                    break;
                }
            }
            while (true)
            {
                Console.Clear();
                for (int i = 0; i < menuItem.Count(); ++i)
                {
                    int CursorPositionX = settings.consoleWidth / 2 - menuItem[i].name.Length / 2;
                    int CursorPositionY = settings.consoleHeight / 2 + i;
                    if (menuItem[i].active)
                    {
                        Console.SetCursorPosition(CursorPositionX - 2, CursorPositionY);
                        Console.BackgroundColor = ConsoleColor.DarkBlue;
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("> " + menuItem[i].name + " <");
                        Console.ResetColor();
                    }
                    else
                    {
                        Console.SetCursorPosition(CursorPositionX, CursorPositionY);
                        Console.WriteLine(menuItem[i].name);
                    }
                }
                ConsoleKeyInfo key = Console.ReadKey(true);
                switch (key.Key)
                {
                case ConsoleKey.UpArrow:
                    menuItem[activeItem].active = false;
                    activeItem = (activeItem - 1 + menuItem.Count()) % menuItem.Count();
                    menuItem[activeItem].active = true;
                    break;

                case ConsoleKey.DownArrow:
                    menuItem[activeItem].active = false;
                    activeItem = (activeItem + 1) % menuItem.Count();
                    menuItem[activeItem].active = true;
                    break;

                case ConsoleKey.Enter:
                    switch (menuItem[activeItem].name)
                    {
                    case "Play":
                        engine.Run();
                        engine.Restart();
                        break;

                    case "Game mode":
                        MainMenu(menuItem[activeItem].subMenu);
                        break;

                    case "Exit":
                        Environment.Exit(0);
                        return;

                    case "Easy":
                        settings.enemiesNumber   = 5;
                        settings.enemyHitPoints  = 2;
                        settings.bossHitPoints   = 15;
                        settings.bossBulletSpeed = 4;
                        engine.settings          = settings;
                        return;

                    case "Normal":
                        settings.enemiesNumber   = 10;
                        settings.enemyHitPoints  = 3;
                        settings.bossHitPoints   = 25;
                        settings.bossBulletSpeed = 3;
                        engine.settings          = settings;
                        return;

                    case "Hard":
                        settings.enemiesNumber   = 20;
                        settings.enemyHitPoints  = 4;
                        settings.bossHitPoints   = 50;
                        settings.bossBulletSpeed = 2;
                        engine.settings          = settings;
                        return;
                    }
                    break;
                }
            }
        }