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

The description in the documentation doesn't make a lot of sense to me. I believe it is safe to say, however, that in this XNA program, the viewport is synonymous with the gamewindow. However, that is not always the case. A game window can contain more than one viewport. See How To: Use Viewports for Split Screen Gaming for an example.

Compute the position of the UFO relative to the game window

The code in Listing 4 computes a position vector which, when applied during the drawing of the UFO, will cause the UFO to occupy a position approximatelylike that shown in Figure 4 .

Listing 4 . Compute the position of the UFO relative to the game window.

ufoPosition.X = viewport.Width / 2; ufoPosition.Y = viewport.Height - 70;

I say approximately because one additional adjustment to the position of the UFO will be made later using the origin parameter of the SpriteBatch.Draw method. If that adjustment were not made, the upper left corner of the rectangle that contains the UFO would beplaced at the position computed in Listing 4 . The origin property will be used to center the UFO on the position that is computed in Listing 4 .

Compute the base scale factor for the background image

Listing 5 computes a scale factor which, when applied to the background image during the drawing process, will cause the 640x480 background image to just fitthe game window. Recall that the size of the game window was set in the constructor of Listing 2 taking the aspect ratio of the background image into account.

Listing 5 . Compute the base scale factor for the background image.

backgroundBaseScale = (float)(450.0 / 640.0); }//end LoadContent

Not the only scale factor

The scale factor computed in Listing 5 will be applied to the background image when the program first starts running. However, during most of the runningof the program, a different scale factor will be applied to the background image and the scale factor computed in Listing 5 will be only one component of that overall scale factor.

An optical illusion

The application of a scale factor to the background image that changes with time is what causes the planet to grow in size giving the illusion that the UFOis approaching the surface of the planet.

Listing 5 signals the end of the LoadContent method.

The overridden Update method

The overridden Update method begins in Listing 6 .

Listing 6 . Beginning of the overridden Update method.

protected override void Update(GameTime gameTime) { //Compute the elapsed time since the last update.// Draw new data only if this time exceeds the // desired frame interval given by msPerFramemsElapsed += gameTime.ElapsedGameTime.Milliseconds; if(msElapsed>msPerFrame) { //Reset the elapsed time and draw the frame with// new data. msElapsed = 0;

Controlling the animation speed

The code in Listing 6 is not new to this module. I explained code like this in an earlier module.

Briefly, the Update method is called sixty times per second by default (I didn't change the default). That is too fast to produce ananimation that looks the way I wanted it to look.

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