示例#1
0
        public override SKSurface Draw(GameState currentState, long frame)
        {
            Clear();

            if (IsEnabled())
            {
                var logFrameRect = SKRect.Create(SKPoint.Empty, Size.AsSKSize());
                Canvas.DrawRoundRect(logFrameRect, 15, 20, Styles.LogBorder);
                logFrameRect.Inflate(-2, -2);
                Canvas.DrawRoundRect(logFrameRect, 15, 20, Styles.LogFill);
                Canvas.DrawText(CurrentMessage.MessageText, new SKPoint(Size.Width / 2, 6 + Size.Height / 2), Styles.LargeTextPaintCentered);

                CurrentMessage.Duration -= 1;
                if (CurrentMessage.Duration <= 0)
                {
                    CurrentMessage = null;
                    if (Queue.Count > 0)
                    {
                        CurrentMessage = Queue.Dequeue();
                    }
                }
            }
            else
            {
                Surface.Canvas.Clear();
            }
            return(Surface);
        }