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

These three accessor methods are straightforward and shouldn't require further explanation.

The property accessor method for Speed

Humans usually find it easier to think in terms of speed such as miles per hour while it is sometimes easier to write computer programs that deal with the reciprocal of speed such as hours per mile .

The property accessor method for the property named Speed is shown in Listing 3 .

Listing 3 . The property accessor method for Speed.

//Speed property accessor. The set side should be // called with speed in moves/msec. The get side// returns speed moves/msec. public double Speed {get { //Convert from elapsed time in msec/move to// speed in moves/msec. return elapsedTimeTarget/1000;} set {//Convert from speed in moves/msec to // elapsed time in milliseconds/move.elapsedTimeTarget = 1000/value; }//end set}//end Speed property accessor

The set side

The set side of the property accessor method for the Speed property receives the incoming value as moves per millisecond . The code converts this value to milliseconds per move and saves it in the instance variable named elapsedTimeTarget mentioned earlier.

This is the target for the elapsed time in milliseconds from one movement to the next movement of the sprite in the game window. Every time a sprite moves,it moves the same distance. Therefore, the apparent speed of sprite movement as seen by the viewer can be controlled by controlling the elapsed time betweenmovements.

The get side

The get side of the property accessor method for the Speed property converts the returned value from milliseconds per move back to moves per millisecond .

The constructor

The constructor for the Sprite class is shown in Listing 4 .

Listing 4 . The constructor for the Sprite class.

public Sprite(String assetName, ContentManager contentManager,Random random) { image = contentManager.Load<Texture2D>(assetName); this.random = random;}//end constructor

Load an image

The constructor loads an image for the sprite when it is instantiated. Therefore, it requires an Asset Name for the image and a reference to a ContentManager object.

A random number generator

The constructor also requires a reference to a Random object capable of generating a sequence of pseudo random values of type double .

The purpose of the random number generator will become clear later.

The program should use the same Random object for all sprites to avoid getting the same sequence of values for different sprites whentwo or more sprites are instantiated in a very short period of time.

The SetImage method

The SetImage method is shown in Listing 5 .

Listing 5 . The SetImage method.

public void SetImage(String assetName, ContentManager contentManager) {image = contentManager.Load<Texture2D>(assetName); }//end SetImage

This method can be called to load a new image for an existing sprite. The method is essentially the same as a method having the same name that Iexplained in an earlier module, so no further explanation should be required.

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