public static void ConsoleSetings() { Console.Title = "The best Game!!!!"; Console.CursorVisible = false; Console.SetWindowSize(Width, Height); Console.SetBufferSize(Width, Height); #if DEBUG Console.SetWindowSize(Width + 50, Console.LargestWindowHeight); Console.SetBufferSize(Width + 50, Console.LargestWindowHeight); #endif #if DEBUG GameLogger.AddLog(ref Program.log, "Настройки консоли установлены"); #endif }
public static void Hide(GameLogger gameLogger) { int yOffset = 3; for (int i = 0; i < gameLogger.MessageCount; i++) { // вылазит за буфер почини! Console.SetCursorPosition(Settings.LogWidthStartPos + 20, ++yOffset); // + Color Console.Write("{0,30}", " "); if (yOffset >= Console.WindowHeight - 1) { break; } } }
public static void AddLog(ref GameLogger log, string message) { log.isChanged = true; if (log.MessageCount < log.Messages.Length) // проверка на переполненость массива { //проверка на то, являестся ли новая запись идентичной прошлой if (log.MessageCount > 0 && message == log.Messages[log.MessageCount - 1].Message) { log.Messages[log.MessageCount - 1].CountIdenticalLogs++; } else { log.Messages[log.MessageCount] = new LogItem() { Message = message, Color = 0 }; ++log.MessageCount; } } }
public static void PrintBracket() { Console.SetCursorPosition(0, 0); Console.BackgroundColor = ConsoleColor.Red; for (int i = 0; i < Settings.Width - 1; i++) { Console.SetCursorPosition(i, 0); // верхняя линия Console.Write(" "); Console.SetCursorPosition(i, Settings.GetGameArea().To.newPos.y - 1); // нижняя линия Console.Write(" "); } for (int i = 0; i < Settings.Height - 1; i++) { Console.SetCursorPosition(0, i); // левая линия Console.Write(" "); Console.SetCursorPosition(Settings.Width - 1, i); // правая линия Console.Write(" "); } for (int i = 0; i <= Settings.GetGameArea().To.newPos.y - 1; i++) { Console.SetCursorPosition(Settings.GetGameArea().To.newPos.x - 1, i); // левая линия Console.Write(" "); } for (int i = Settings.GetGameArea().To.newPos.x - 1; i < Settings.Width; i++) { Console.SetCursorPosition(i, 4); Console.Write(" "); } Console.SetCursorPosition(Settings.GetGameArea().To.newPos.x + 3, 6); Console.Write(" "); Console.ResetColor(); #if DEBUG GameLogger.AddLog(ref Program.log, "Статичная рамка игры нарисована"); #endif }
public static void PrintLog(GameLogger l) { if (l.isChanged) { Hide(l); int yOffset = 3; for (int i = l.MessageCount - 1; i >= 0; i--) { Console.SetCursorPosition(Settings.LogWidthStartPos + 20, yOffset); // + Color Console.Write("{0,30} ({1,3} раз)", l.Messages[i].Message, l.Messages[i].CountIdenticalLogs + 1); ++yOffset; if (yOffset >= Console.WindowHeight - 1) { break; } } l.isChanged = false; } }