Ejemplo n.º 1
0
 public Vector2 MeasureText(Font font, string text)
 {
     return font.Measure(text);
 }
Ejemplo n.º 2
0
        //Methods to draw text.
        public void DrawText(Font font, string text, Vector2 position, Color? color = null, float rotation = 0f, Vector2? origin = null, float scale = 1f, Font.Alignment alignment = Font.Alignment.TopLeft)
        {
            BeginSpriteBatch();

            Vector2 finalOrigin = origin ?? new Vector2(0f, 0f);

            //Apply the alignment.
            if (alignment != Font.Alignment.TopLeft)
            {
                Vector2 textMeasure = font.Measure(text);
                if (alignment == Font.Alignment.MiddleLeft || alignment == Font.Alignment.MiddleCenter || alignment == Font.Alignment.MiddleRight)
                    finalOrigin.Y += textMeasure.Y / 2;
                if (alignment == Font.Alignment.BottomLeft || alignment == Font.Alignment.BottomCenter || alignment == Font.Alignment.BottomRight)
                    finalOrigin.Y += textMeasure.Y;
                if (alignment == Font.Alignment.TopCenter || alignment == Font.Alignment.MiddleCenter || alignment == Font.Alignment.BottomCenter)
                    finalOrigin.X += textMeasure.X / 2;
                if (alignment == Font.Alignment.TopRight || alignment == Font.Alignment.MiddleRight || alignment == Font.Alignment.BottomRight)
                    finalOrigin.X += textMeasure.X;
            }

            spriteBatch.DrawString(font.SpriteFont, text, position, color ?? Color.Black, rotation, finalOrigin, scale, SpriteEffects.None, 0f);
        }