示例#1
0
        public static void DrawTextRightAligned(CustomSpriteBatch g, string Text, Vector2 Position, Color TextColor)
        {
            int TextWidth = (int)fntShadowFont.MeasureString(Text).X;

            g.DrawString(fntShadowFont, Text, Position, Color.Black, 0, new Vector2(TextWidth, 0), 1, SpriteEffects.None, 1);
            g.DrawString(fntWhiteFont, Text, Position, TextColor, 0, new Vector2(TextWidth, 0), 1, SpriteEffects.None, 0);
        }
示例#2
0
        public static void DrawTextMultiline(CustomSpriteBatch g, SpriteFont TextFont, List <string> ListText, TextAligns TextAlign, float XPos, float YPos, int TextMaxWidthInPixel)
        {
            float YOffset = 0;

            if (TextAlign == TextAligns.Left)
            {
                XPos -= TextMaxWidthInPixel / 2;
                foreach (string ActiveLine in ListText)
                {
                    g.DrawString(TextFont, ActiveLine, new Vector2(XPos, YPos + YOffset), Color.White);
                    YOffset += TextFont.LineSpacing;
                }
            }
            else if (TextAlign == TextAligns.Right)
            {
                XPos += TextMaxWidthInPixel / 2;
                foreach (string ActiveLine in ListText)
                {
                    int TextWidth = (int)TextFont.MeasureString(ActiveLine).X;
                    g.DrawString(TextFont, ActiveLine, new Vector2(XPos, YPos + YOffset), Color.White, 0f, new Vector2(TextWidth, 0), 1f, SpriteEffects.None, 0f);
                    YOffset += TextFont.LineSpacing;
                }
            }
            else if (TextAlign == TextAligns.Center)
            {
                foreach (string ActiveLine in ListText)
                {
                    int TextWidth = (int)TextFont.MeasureString(ActiveLine).X / 2;
                    g.DrawString(TextFont, ActiveLine, new Vector2(XPos, YPos + YOffset), Color.White, 0f, new Vector2(TextWidth, 0), 1f, SpriteEffects.None, 0f);
                    YOffset += TextFont.LineSpacing;
                }
            }
            else if (TextAlign == TextAligns.Justified)
            {
                XPos -= TextMaxWidthInPixel / 2;

                foreach (string ActiveLine in ListText)
                {
                    float TextWidth   = TextFont.MeasureString(ActiveLine).X;
                    float ScaleFactor = TextMaxWidthInPixel / TextWidth;
                    for (int C = 0; C < ActiveLine.Length; ++C)
                    {
                        float Offset = TextFont.MeasureString(ActiveLine.Substring(0, C)).X;
                        g.DrawString(TextFont, ActiveLine[C].ToString(), new Vector2(XPos + Offset * ScaleFactor, YPos + YOffset), Color.White);
                    }
                    YOffset += TextFont.LineSpacing;
                }
            }
        }
示例#3
0
 public static void DrawText(CustomSpriteBatch g, string Text, Vector2 Position, Color TextColor)
 {
     g.DrawString(_fntShadowFont, Text, Position, Color.Black, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0.01f);
     g.DrawString(fntWhiteFont, Text, Position, TextColor, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
 }