public static Vector2 DrawFromOrigin(this SpriteFont font, string text, DrawFrom draw_from)
        {
            Vector2 origin;
            var     text_size = font.MeasureString(text);

            switch (draw_from)
            {
            case DrawFrom.TopLeft:
                origin = Vector2.Zero;
                break;

            case DrawFrom.TopCenter:
                origin = new Vector2(text_size.X / 2, 0);
                break;

            case DrawFrom.TopRight:
                origin = new Vector2(text_size.X, 0);
                break;

            case DrawFrom.BottomLeft:
                origin = new Vector2(0, text_size.Y);
                break;

            case DrawFrom.BottomCenter:
                origin = new Vector2(text_size.X / 2, text_size.Y);
                break;

            case DrawFrom.BottomRight:
                origin = new Vector2(text_size.X, text_size.Y);
                break;

            case DrawFrom.Center:
                origin = new Vector2(text_size.X / 2, text_size.Y / 2);
                break;

            case DrawFrom.RightCenter:
                origin = new Vector2(text_size.X, text_size.Y / 2);
                break;

            case DrawFrom.LeftCenter:
                origin = new Vector2(0, text_size.Y / 2);
                break;

            default:
                origin = Vector2.Zero;
                break;
            }

            return(origin);
        }
示例#2
0
        public static void DrawString(this SpriteBatch sprite_batch, SpriteFont sprite_font, string text, Vector2 position, Color color, float rotation, DrawFrom draw_from, float scale, SpriteEffects effects, float layer_depth)
        {
            var origin = sprite_font.DrawFromOrigin(text, draw_from);

            sprite_batch.DrawString(sprite_font, text, position, color, rotation, origin, scale, effects, layer_depth);
        }