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); }
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); }