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

Two new instance variables

Listing 6 begins by declaring two new instance variables of types Texture2D and Vector2 named myTexture and spritePosition respectively.

The variable named myTexture will be used in the LoadContent method of Listing 6 to store a reference to a Texture2D object created from the image file with the Asset Name of gorightarrow (see Figure 7 ). It will also be used later in the overridden Draw method where it is the sprite being drawn.

The variable named spritePosition will be used later in the overridden Draw method to specify the location to draw the sprite. I will have more to say about this variable later.

The Texture2D class

Here is some of what the documentation has to say about the Texture2D class.

"Represents a 2D grid of texels .
A texel represents the smallest unit of a texture that can be read from or written to by the GPU(Graphics Processing Unit). A texel is composed of 1 to 4 components. Specifically, a texel may be any one of the available texture formatsrepresented in the SurfaceFormat enumeration.
A Texture2D resource contains a 2D grid of texels. Each texel is addressable by a u, v vector. Since it is a texture resource, it may containmipmap levels."

You can view a diagram of a texture resource containing a single 3x5 texture with three mipmap levels here . You can read what Wikipedia has to say about mipmaps here . The image used in this program doesn't have any mipmaps.

The SurfaceFormat enumeration

The SurfaceFormat enumeration defines numeric values representing about 50 different types of surface formats such as Rgba32 , which is defined as

"(Unsigned format) 32-bit RGBA pixel format with alpha, using 8 bits per channel."

The Texture Format of my image

For example, the Properties Window in Figure 7 shows the image that I used for my program to have a Texture Format property value of Color . The definition of the SurfaceFormat enumeration for Color is

"(Unsigned format) 32-bit ARGB pixel format with alpha, using 8 bits per channel."

Note that this is similar to Rgba32 except that the position of the alpha byte relative to the other three bytes is different.

A new SpriteBatch object

The code in the overridden LoadContent method of Listing 6 begins by instantiating a new SpriteBatch object and saving its reference in the reference variable named spriteBatch . (That variable is declared at the top of Listing 3 .)

Note that the statement that instantiates the SpriteBatch object in Listing 6 is already in the skeleton of the Game1 class when it first appears in the edit window of the Visual C# IDE. (See Listing 3 .)

The SpriteBatch class

According to the documentation , an object of the SpriteBatch class

"Enables a group of sprites to be drawn using the same settings."

The constructor for an object of the SpriteBatch class requires an incoming parameter that is a reference to the graphicsDevice of the current platform as type GraphicsDevice .

This can be confusing

GraphicsDevice is the name of an XNA class. It is also the name of a property of the Game class that is inherited into the Game1 class. The parameter that is passed to the constructor for the SpriteBatch object in Listing 6 is the inherited property.

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