Пример #1
0
        public override void Draw(
            float offsetX,
            float offsetY,
            Renderer2D renderer)
        {
            float margin    = BorderEnabled ? (2f * BorderWidth) : 0f;
            float x         = offsetX + LocalLeftX + margin;
            float y         = offsetY + LocalTopY + Height - margin; // 下端から上へ向かって描画する
            int   lineCount = lines.Length;
            int   lineIndex = 0;

            while (lineIndex < lineCount)
            {
                int index = nextLinePos - 1 - lineIndex;
                if (index < 0)
                {
                    index += lineCount;
                }
                else if (index >= lineCount)
                {
                    index -= lineCount;
                }
                if (lines[index] != null)
                {
                    renderer.Color = colors[index];
                    var addedLineCount = renderer.AddText(
                        lines[index],
                        x,
                        y,
                        fontSize,
                        Width - (2f * margin),
                        y - margin - (offsetY + LocalTopY),
                        AlignX.Left,
                        AlignY.Bottom);
                    y -= renderer.CalcLineHeight(fontSize) * addedLineCount;
                }
                lineIndex++;
            }
        }