<< Chapter < Page
  Xna game studio     Page 10 / 11
Chapter >> Page >
This is another manifestation of an object knowing how to behave with minimal supervision. The overriddenGame.Draw method doesn't know and doesn't care where the Sprite object should be positioned or what image it should draw to represent itself. TheGame.Draw method simply knows that every Sprite object must redraw itself at the appropriate position with the appropriate image at this point in time.Decisions regarding position and image are left up to the Sprite object.

Regardless of whether or not a sprite has decided to move, it should cause itself to be redrawn in the game window because its image has just been replacedby a bunch of CornflowerBlue pixels.

Not the same approach as some other game engines

Some game engines take a different approach and in the interest of speed, redraw only those portions of the game window that have changed. This can leadto a great deal of complexity and it is often the responsibility of the game programmer to manage that complexity.

That is not the case with XNA. From the viewpoint of the XNA game programmer, the entire game window is redrawn once during every iteration of the game loop.This causes XNA to be easier to program than some other game engines. On the other hand, it might be argued that XNA sacrifices speed for simplicity.

The end of the program

Listing 18 also signals the end of the overridden Game.Draw method, the end of the Game1 class, and the end of the program.

Run the program

I encourage you to copy the code from Listing 19 and Listing 20 . Use that code to create an XNA project. (You should be able to use any small image filesas sprites.) Compile and run the project. Experiment with the code, making changes, and observing the results of your changes. Make certain that you canexplain why your changes behave as they do.

Run my program

Click here to download a zip file containing my version of the program. Extract the folder named XNA0128Proj from the zip file and save it somewhere on your disk. Start Visual C# 2010 Express and select Open Project... from the File menu. Navigate to the project folder and select the file with the extension of .sln . This should cause the project to open and be ready to run or debug as described in the earlier module titled Getting Started .

Summary

In this module, you learned how to add more sophistication to the Sprite class that was introduced in an earlier module.

What's next?

We're getting very close to being able to write a 2D arcade style game involving UFOs, space rocks, and power pills. There are just a few more toolsthat we need and I will show you how to create those tools in the upcoming modules.

The critical tools are:

  • The ability to detect collisions between sprites.
  • The ability to control the movement of one or more sprites using the keyboard or the mouse.

Once we have those tools, we can write a game where the challenge is to cause the UFO to successfully navigate across the game window without colliding with aspace rock, so I will concentrate on those two tools in the next few modules. (There are probably other games that we could also create using those tools.)

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