I will begin my explanation with the class named Sprite .
The Sprite class
The file named Sprite.cs (see Listing 14 ) defines a simple version of a Sprite class from which multiple Sprite objects can be instantiated, loaded with an image, and drawn in the game window.The Position property of each Sprite object can be accessed by the user to control the position at which the sprite isdrawn.
The definition of the Sprite class begins in Listing 1 .
Listing 1 . Beginning of the Sprite class.
namespace XNA0126Proj {
class Sprite {private Texture2D texture;
private Vector2 position = new Vector2(0,0);//-------------------------------------------------//
public Vector2 Position {get {
return position;}//end get
set {position = value;
}//end set}//end Position property accessor
Two instance variables and a property accessor method
Listing 1 declares two instance variables and defines an accessor for the Position property.
The first instance variable named texture will be used to store the image for the sprite. The second instance variable named position will be used to store the value for the Position property.
Two overloaded constructors
Listing 2 defines two overloaded constructors for the Sprite class.
Listing 2 . Two overloaded constructors.
public Sprite() {//constructor
}//end noarg constructor//-------------------------------------------------//
public Sprite(String assetName,ContentManager contentManager) {
texture =contentManager.Load<Texture2D>(assetName);
}//end constructor
No image when instantiated
The first overloaded constructor, which requires no parameters, makes it possible to instantiate a Sprite object without loading an image for the object when it is constructed. A method named SetImage can be called later to load an image for the object.
Image loaded during construction
The second overloaded constructor, which requires two parameters, makes it possible to load an image for the Sprite object when it is constructed.
The first parameter
The first parameter required by the second constructor is the Asset Name property for an image file that is added to the Content folder during the project design phase.
The second parameter
The second parameter is a reference to the ContentManager object that is inherited into the Game1 object from the Game class.
Loading the image
You are already familiar with the code in the body of the constructor that is used to load the image into the object.
The SetImage method
The SetImage method is shown in its entirety in Listing 3 .
Listing 3 . The SetImage method.
public void SetImage(String assetName,
ContentManager contentManager) {texture =
contentManager.Load<Texture2D>(assetName);
}//end SetImage
Load an image into a Sprite object
The SetImage method makes it possible to load an image into a Sprite object that was originally constructed without an image , or to change the image in a Sprite object that already contains an image.