// Drawtext.cs #region Using Statements using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; #endregion namespace Shooter { public class DrawText { private Dictionary m_FontList = new Dictionary(); private List m_SpriteList = new List(); private SpriteBatch m_Batch; private ContentManager m_Content; public DrawText(SpriteBatch batch, ContentManager content) { m_Batch = batch; m_Content = content; } public void AddFont(string name) { m_SpriteList.Add(m_Content.Load("Fonts/" + name)); m_FontList.Add(name, m_SpriteList[m_FontList.Count]); } private bool ContainFont(string str) { if (m_FontList[str] != null) return true; return false; } public void Draw(Vector2 pos, string str, Color color, string fontName) { try { if (ContainFont(fontName)) { m_Batch.DrawString(m_FontList[fontName], str, pos, color); } } catch (KeyNotFoundException) { throw new Exception(fontName + " is not a valid font."); } } } } // Inside game1.cs // Declare a new DrawText private DrawText m_DrawText; protected override void LoadGraphicsContent(bool loadAllContent) { if (loadAllContent) { m_SpriteBatch = new SpriteBatch(m_Graphics.GraphicsDevice); // Setup your new drawtext thing m_DrawText = new DrawText(m_SpriteBatch, m_Content); // Add some fonts (that you added into your game) m_DrawText.AddFont("Arial"); m_DrawText.AddFont("Fgm"); } } // As long as you have access to that DrawText you declared, you can run it in the // Draw( .. ) function // eg: dt.Draw(new Vector2(0, 0), "Position: " + m_Player.Position, Color.White, "Arial");