/
Vagabond132
/
TerrariaCourse
Обзор
Документация
Войти
/
Vagabond132
/
TerrariaCourse
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
Windows
ConsoleView/Menu/ViewRulesConsole.cs
112 строк
4 KB
Vagabond132
Комментарии добавлены
12 янв 2025, 15:30
12 янв 2025, 15:30
0078286
Код
Авторство
О чём код?
using Model.Menu; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using View.Menu; using ViewConsole.Menu; namespace ConsoleView.Menu { /// <summary> /// Отображение меню правил /// </summary> public class ViewRulesConsole : ViewMenu { /// <summary> /// Ширина /// </summary> public int WIDTH = 110; /// <summary> /// Высота /// </summary> public int HEIGHT = Console.LargestWindowHeight / 2; /// <summary> /// Конструктор /// </summary> /// <param name="parSubMenuItem"></param> public ViewRulesConsole(Model.Menu.Menu parSubMenuItem) : base(parSubMenuItem) { Init(); Draw(); } /// <summary> /// Создание подменю /// </summary> /// <param name="parMenuItem"></param> /// <returns></returns> protected override ViewMenuItem CreateItem(MenuItem parMenuItem) { if (parMenuItem is Model.Menu.SubMenuItem) return new ViewSubMenuItemConsole((Model.Menu.SubMenuItem)parMenuItem); else if (parMenuItem is Model.Menu.MenuItem) return new ViewMenuItemConsole(parMenuItem); return null; } /// <summary> /// Инициализация /// </summary> private void Init() { Console.WindowHeight = HEIGHT; Console.WindowWidth = WIDTH; Console.SetBufferSize(WIDTH, HEIGHT); Console.CursorVisible = false; View.Menu.ViewMenuItem[] menu = Menu; Height = menu.Length; Width = menu.Max((x) => x.Width); X = Console.WindowWidth / 2 - Width / 2; Y = Console.WindowHeight / 2 - Height / 2 + 10; int y = Y; foreach (View.Menu.ViewMenuItem elViewMenuItem in menu) { elViewMenuItem.X = X; elViewMenuItem.Y = y++; } } /// <summary> /// Нужна перерисовка /// </summary> protected override void NeedRedraw() { Draw(); } /// <summary> /// Отрисовка правил /// </summary> private void DrawRules() { Console.SetCursorPosition(0, 0); Console.WriteLine(new string('=', Console.WindowWidth)); Console.WriteLine(); Console.WriteLine(new string(' ', Console.WindowWidth/2 - "ПРАВИЛА ИГРЫ".Length) + "ПРАВИЛА ИГРЫ"); Console.WriteLine(); Console.WriteLine("Ваша цель – разрушать блоки, которые появляются в игровом мире, и зарабатывать очки. \r\nКаждый разрушенный блок добавляет очки в ваш счет. \n\rЧем более редкий блок вы разрушите, тем больше очков вы получите."); Console.WriteLine(); Console.WriteLine("Управление:\r\nW / Вверх: Перемещение персонажа вверх.\r\nA / Влево: Перемещение персонажа влево.\r\nD / Вправо: Перемещение персонажа вправо.\r\nПробел: Прыжок персонажа.\r\nE: Разрушение блоков перед персонажем.\r\nМежду разрушениями блоков происходит пауза в 1 секунду.\r\nEscape: Выход из игры."); Console.WriteLine(); Console.WriteLine(new string('=', Console.WindowWidth)); } /// <summary> /// Отрисовка /// </summary> public override void Draw() { Console.Clear(); DrawRules(); foreach (View.Menu.ViewMenuItem elViewMenuItem in Menu) { elViewMenuItem.Draw(); } } } }