<< Chapter < Page
  Xna game studio     Page 4 / 13
Chapter >> Page >

Drawing the on-screen text

I will explain the code in the Game1 class of the project named XNA0132ProjA that produced the screen output shown in reduced form in Figure 4 .

Figure 4 . Demonstration of on-screen text with the Lindsey font.

missing image

As usual, I will explain the code in fragments. A complete listing of the Game1 class is provided in Listing 12 near the end of the module.

Here is my interpretation of the coding steps for displaying on-screen text in the game window.

  • Add a Sprite Font to your project as described above.
  • Declare an instance variable of type SpriteFont to refer to a SpriteFont object. (See Listing 1 .)
  • Declare an instance variable of type Vector2 to refer to an object that specifies the position of your text relative to the upperleft corner of the game window. (See Listing 1 .)
  • Create a SpriteFont object by calling the ContentManager.Load method, specifying the SpriteFont class and the Asset Name of the imported font in your overridden LoadContent method. Save the object's reference in the instance variable declared earlier. (See Listing 1 .)
  • Instantiate a new Vector2 object to specify the position of the text in the game window in the LoadContent method. Save the object's reference in the instance variable declaredearlier. (See Listing 1 .) The X and Y component values of the Vector2 object can be modified later in the Update method if needed.
  • Write the typical SpriteBatch.Begin and SpriteBatch.End method calls in the overridden Game.Draw method. (See Listing 2 and Listing 3 .)
  • Create a string in the LoadContent , Update , or Draw methods containing the text that will be displayed in the game window. (See Listing 2 .)
  • Instantiate a Vector2 object in the LoadContent , Update , or Draw methods that specifies the origin of the text string, which will be drawn at the previously computedposition of the text string. (See Listing 2 .)
  • Compute values for the other parameters to the SpriteBatch.DrawString method as needed.
  • Call the SpriteBatch.DrawString method between the SpriteBatch.Begin and SpriteBatch.End methods. (See Listing 3 .)

The project named XNA0132ProjA

Listing 1 shows the beginning of the Game1 class and the overridden LoadContent method for the project named XNA0132ProjA . This project, which is different from XNA0132Proj to be discussed later, demonstrates how to draw onscreen text.

Listing 1 . Beginning of the Game1 class and the overridden LoadContent method for the project named XNA0132ProjA.

namespace XNA0132ProjA { public class Game1 : Microsoft.Xna.Framework.Game {GraphicsDeviceManager graphics; SpriteBatch spriteBatch;SpriteFont Font1; Vector2 FontPos;//-------------------------------------------------// protected override void LoadContent() {spriteBatch = new SpriteBatch(GraphicsDevice); //Create a new SpriteFont object.Font1 = Content.Load<SpriteFont>("Lindsey"); //Create a new Vector2 object to center the text// in the game window. FontPos = new Vector2(graphics.GraphicsDevice.Viewport.Width / 2, graphics.GraphicsDevice.Viewport.Height / 2);}//end LoadContent method

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Xna game studio. OpenStax CNX. Feb 28, 2014 Download for free at https://legacy.cnx.org/content/col11634/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Xna game studio' conversation and receive update notifications?

Ask