Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- namespace ConsoleMenu
- {
- enum MenuOptions { Play = 0, Credits, Exit }
- class Menu
- {
- public MenuOptions SelectedItem { get; set; }
- public const string menuText = "{0,-3}Play\n{1,-3}Credits\n{2,-3}Exit";
- public Menu()
- {
- SelectedItem = MenuOptions.Play;
- }
- public void ShowCredits()
- {
- Console.Clear();
- Console.WriteLine("Written By: insertAlias");
- Thread.Sleep(500);
- Console.WriteLine("Directed By: insertAlias");
- Thread.Sleep(500);
- Console.WriteLine("Produced By: insertAlias");
- Thread.Sleep(500);
- Console.WriteLine("Played By: You!");
- Thread.Sleep(500);
- Console.WriteLine("Press any key to return to the menu.");
- Console.ReadKey();
- }
- public void Play()
- {
- Console.Clear();
- Console.WriteLine("Beginning Game...");
- Thread.Sleep(500);
- Console.WriteLine("Playing Game...");
- Thread.Sleep(500);
- Console.WriteLine("Exiting Game...");
- }
- public void Exit()
- {
- Console.Clear();
- Console.WriteLine("Exiting Game...");
- Thread.Sleep(500);
- }
- public void ShowMenu()
- {
- Console.CursorVisible = false;
- ConsoleKeyInfo key;
- SelectedItem = MenuOptions.Play;
- do
- {
- Console.Clear();
- Console.WriteLine(menuText,
- GetPrefix(SelectedItem == MenuOptions.Play),
- GetPrefix(SelectedItem == MenuOptions.Credits),
- GetPrefix(SelectedItem == MenuOptions.Exit));
- key = Console.ReadKey();
- if (key.Key == ConsoleKey.UpArrow)
- SelectedItem = MenuUp(SelectedItem);
- else if (key.Key == ConsoleKey.DownArrow)
- SelectedItem = MenuDown(SelectedItem);
- } while (key.Key != ConsoleKey.Enter);
- Console.CursorVisible = true;
- }
- public void DoSelectedAction()
- {
- if (SelectedItem == MenuOptions.Play)
- Play();
- else if (SelectedItem == MenuOptions.Exit)
- Exit();
- else
- ShowCredits();
- }
- public string GetPrefix(bool selected)
- {
- return selected ? ">" : "";
- }
- public MenuOptions MenuUp(MenuOptions current)
- {
- if (current == MenuOptions.Play)
- return MenuOptions.Exit;
- else return current - 1;
- }
- public MenuOptions MenuDown(MenuOptions current)
- {
- if (current == MenuOptions.Exit)
- return MenuOptions.Play;
- else return current + 1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement