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

The only things that are new here are the interactions among the position parameter, the origin parameter, and the scale parameter that I explained earlier.

It is probably also worth noting that the last parameter has a value of 1.0, which causes this image to be displayed behind every other image.

Draw the UFO

The code in Listing 10 draws the UFO image with alpha blending turned on to cause the green areas of the image to be transparent.

Again, note the change that was made in the call to the SpriteBatch.Begin method to upgrade the program from XNA 3.1 to XNA 4.0.

Listing 10 . Draw the UFO.

// Turn on blending to draw the UFO in the // foreground. Note the update for XNA 4.0.// spriteBatch.Begin(SpriteBlendMode.AlphaBlend); spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend);//Center the UFO at the point in the window // identified as UFO position. The UFO image is// 64x33 pixels. Vector2 origin = new Vector2(32,16);spriteBatch.Draw(ufoTexture,//sprite ufoPosition,//position re windownull,//rectangle Color.White,//tine0,//rotation origin,//origin1,//scale SpriteEffects.None,0f);//layer, 0 is in front spriteBatch.End();base.Draw(gameTime); }//end Draw method}//end class }//end namespace

Center the UFO image on the position

The UFO image is 64 pixels wide and 33 pixels high. The origin is set to the center of the image with coordinates of (32,16) relative to the upper leftcorner of the image.

Then the image is drawn with the origin at the ufoPosition , which was computed in Listing 4 .

The value of ufoPosition specifies a point that is in the horizontal center of the game window and 70 pixels from the bottom of the gamewindow. Therefore, the center of the UFO is positioned at the horizontal center of the game window and 70 pixels up from the bottom of the game window as shownin Figure 4 through Figure12 .

The UFO does not move

The UFO doesn't move. It stays in one place and the background image is animated behind it.

The front of the z-order stack

The value of the last parameter in Listing 10 is zero. This places the UFO in front of every other image. Of course, in this case, there are only two images:the background image at the back and the UFO image at the front.

The end of the program

Listing 10 signals the end of the overridden Draw method, the end of the class, and the end of the program.

Recap on the origin and position parameters

The SpriteBatch.Draw method has an origin parameter and a position parameter.

The origin parameter specifies a point somewhere in the image being drawn relative to the upper left corner of the image. The position parameter specifies where that point will be drawn relative to the upper left corner of the game window.

Run the program

I encourage you to download Figure 2 and Figure 3 and to copy the code from Listing 11 . Use that code to create an XNA project. Compile and run the project. Experiment with the code, makingchanges, and observing the results of your changes. Make certain that you can explain why your changes behave as they do. Note that the image that youdownload from Figure 3 will be smaller than the image that I used. Therefore, your scaling will probably need to be different.

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