/
karachi
/
KPO_CP_CrossyRoad
Обзор
Документация
Войти
/
karachi
/
KPO_CP_CrossyRoad
Код
Запросы
5
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
console
ControllerConsole/MenuControllerConsole.cs
69 строк
2 KB
karachi-23
console
11 янв 2025, 00:00
11 янв 2025, 00:00
3330cd2
Код
Авторство
О чём код?
using Controller.Menu; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ViewConsole.Menu; using Model.Menu; namespace ControllerConsole { /// <summary> /// Общее для контроллеров консольного меню /// </summary> public class MenuControllerConsole : MenuController { /// <summary> /// Представление консольного меню /// </summary> private readonly MenuViewConsole _menuViewConsole; /// <summary> /// Флаг продолжения нахождения в пункте меню /// </summary> private volatile bool _exit = false; private static bool _isGameOver = false; /// <summary> /// Конструктор консольного меню /// </summary> /// <param name="parMenu"></param> public MenuControllerConsole(Menu parMenu) : base(parMenu) { _menuViewConsole = new MenuViewConsole(parMenu); } /// <summary> /// Запуск меню /// </summary> public override void Start() { Console.Clear(); _menuViewConsole.Draw(); if (!_isGameOver) { _exit = false; do { ConsoleKeyInfo keyInfo = Console.ReadKey(true); switch (keyInfo.Key) { case ConsoleKey.UpArrow: Menu.FocusPrevious(); break; case ConsoleKey.DownArrow: Menu.FocusNext(); break; case ConsoleKey.Enter: case ConsoleKey.Spacebar: _exit = true; Menu.SelectedFocusedElement(); break; } } while (!_exit); } } } }