//====== override: Window protected override void PaintContent(TextCanvas canvas) { var list = optionSelector.OptionsList; for (int i = 0; i < list.Options.Count; i++) { bool isSelected = optionSelector.CurrentOptionIndex == i; var color = isSelected ? Color16.White : Color16.Silver; canvas.WriteText(new Point(3, 1 + i), list.Options[i].Name, color, Appearance.BackColor); if (isSelected) { canvas.WriteText(new Point(1, 1 + i), ">", color, Appearance.BackColor); } } }
private void PrintHiScoreItem(TextCanvas canvas, Point position, int itemIndex, HiScoresEntry entry) { var color = (entry is null) ? Color16.Gray : Color16.White; string name = entry?.Name ?? "..."; string score = entry?.Score.ToString() ?? "..."; name = name.PadLeft(20, ' '); score = score.PadLeft(5, ' '); canvas.WriteText(position, $"{itemIndex + 1}. {score} {name}", color, Appearance.BackColor); }
public override void ProcessCanvas(TextCanvas canvas) { canvas.ClearColor(Color16.Black); canvas.WriteTextCenter(2, Resources.TextLogo, Color16.Red, Color16.Black); var menuWindow = new OptionsListWindow <MainMenuEntry>(optionSelector); var rectCenter = menuWindow.Size.AsRectangle.CenterAt(canvas.Size.AsRectangle.Center); menuWindow.Paint(canvas, rectCenter.TopLeft.AddToY(2)); // print version var version = 'v' + Resources.SnakeGameVersion; var position = new Point(canvas.Size.Width - version.Length - 1, canvas.Size.Height - 1); canvas.WriteText(position, version, Color16.Gray, Color16.Black); }
// 3) public virtual void ProcessCanvas(TextCanvas canvas) { var msg = $"Please implement {nameof( ProcessCanvas )} method in {GetType().Name} class."; canvas.WriteText(Point.Zero, msg, Color16.White, Color16.Red); }
//====== private methods private void WriteStatsLine(TextCanvas canvas, Point position, string key, string value, Color16 foreColor) { canvas.WriteText(position, key + ":", Color16.White, Appearance.BackColor); canvas.WriteText(position.AddToX(key.Length + 2), value, foreColor, Appearance.BackColor); }