//====== ctors protected ScreenTransition(ITextArrayReader prevGameModuleScreenSnapshot, TextCanvas canvas, GameTime gameTime) : base(gameTime) { Verify.NotNull(prevGameModuleScreenSnapshot, nameof(prevGameModuleScreenSnapshot)); this.canvas = Verify.NotNull(canvas, nameof(canvas)); if (prevGameModuleScreenSnapshot.Size.Equals(canvas.Size) == false) { throw new ArgumentException($"Sizes are not equal."); } this.prevGameModuleScreenSnapshot = TextImage.CreateCopyFrom(prevGameModuleScreenSnapshot); }
//====== public methods public ITextArrayReader RenderImage() { byte[] digits09 = Value.ToString().Select(x => byte.Parse(x.ToString())).ToArray(); int imageWidth = (digits09.Length * 4) - 1; var valueImage = new TextImage(new Size(imageWidth, 5)); for (int i = 0; i < digits09.Length; i++) { var digitImage = TextImage.CreateCopyFrom(BigDigits.GetDigit(digits09[i])); var digitPosition = new Point(i * 4, 0); digitImage.Canvas.Colorize(ForeColor, null); valueImage.Canvas.DrawImage(digitImage, digitPosition); } return(valueImage); }