<< Chapter < Page
  Xna game studio     Page 9 / 16
Chapter >> Page >

The big picture

Sifting through all of this detail in an attempt to get a big picture view, we see that we should:

  • Override Initialize for any special initialization and for loading any non-graphic resources. For example, sound files arenon-graphic resources.
  • Override LoadContent to load all graphic resources.
  • Override UnloadContent if any graphic resources need to be unloaded.
  • Override Update to implement all of the game logic.
  • Override Draw to draw an individual frame based on values created and stored by the overridden Update method, such as the current position of a sprite.
  • Be aware that there are two different approaches to controlling the timing of the game loop, depending on whether the IsFixedTimeStep property of the Game object is true or false. The default value is true, meaning that the game will attempt to callthe Update method on a fixed time interval even if that means that the Draw method doesn't get called during some iterations of the game loop.

The constructor for the Game1 class

Listing 5 shows the declaration of two instance variables followed by the constructor for the Game1 class. One of the instance variables is used in the constructor and the other is used later in theprogram.

Listing 5 . Constructor for the Game1 class.

GraphicsDeviceManager graphics; SpriteBatch spriteBatch;public Game1() { graphics = new GraphicsDeviceManager(this);Content.RootDirectory = "Content"; }// end constructor

What is a constructor?

A constructor is a special method-like structure that is executed once and only once during the instantiation of an object.

The first statement in the Main method in Listing 2 uses the new operator to cause the constructor to be executed. When the constructor completes its task, it returns a reference to theobject just constructed. That reference is stored in the local reference variable of type Game1 named game in Listing 2 .

A new GraphicsDeviceManager object

The first statement in the constructor in Listing 5 instantiates a new object of the class GraphicsDeviceManager and stores that object's reference in the instance variable named graphics .

The documentation for GraphicsDeviceManager isn't very descriptive. Here is some of what Aaron Reed (the author of the Learning XNA books from O'Reilly) has to say on the topic.

"This (GraphicsDeviceManager) is a very important object because it provides you, as a developer, with a way to access the graphics device on your ... The GraphicsDeviceManager object has a property calledGraphicsDevice that represents the actual graphics device on your machine."

He goes on to explain how the GraphicsDevice object acts as a conduit between your XNA program and the physical graphics device on yourmachine.

Passing the this keyword as a parameter

Note the parameter that is passed to the GraphicsDeviceManager constructor in Listing 5 . The documentation tells us that the parameter must be of type Game and is the Game that the GraphicsDeviceManager should be associated with.

I don't recall having discussed the keyword this earlier in this collection of modules. According to Jesse Liberty ( Programming C# from O'Reilly)

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