<< Chapter < Page | Chapter >> Page > |
To create a new game program, you override some or all of the five methods shown in Listing 1 .
The program that I explained in the earlier module overrode the LoadContent and Draw methods in such a way as to create a sprite and display it in the upper-left corner of the game window.However, that program did not override the Update method. The sprite did not move and was not animated.
The Update method is used to implement game logic. The Draw method is used to render the current state of the game on the computer screen. In this module, I will override the Update method to cause the sprite to move around the game window and to bounce off theedges of the game window.
Figure 1 shows a reduced screen shot of the sprite moving in the game window.
Figure 1 . Moving and bouncing sprite.
On a completely unrelated note, I will introduce you to the Debug class and show you how to use the WriteLine method of the Debug class to display information while the program is running.
Figure 2 shows a screen shot of the Debug output window in the lower left corner of the Visual C# IDE. I will explain the values that yousee in Figure 2 later in this module.
Figure 2 . Debug output window.
I will explain the code in fragments, and I will only explain those fragments that are different from the code that I explained in the earlier module titled Xna0118-The XNA Framework and the Game Class . A complete listing of the code for the class named Game1 is provided in Listing 9 near the end of the module.
Sprite motion in an XNA game is accomplished by changing the current position coordinates of the sprite in the Update method and drawing the sprite in its new position in the Draw method.
You learned about the XNA game loop in the earlier module .
In order to make the sprite move, we need to override the Update method to cause the sprite's position coordinates to change during eachiteration of the game loop. The code to accomplish this begins in Listing 2 .
Listing 2 . Declare variables that specify the incremental distance to move.
//Specify the distance in pixels that the sprite
// will move during each iteration.int stepsX = 5;
int stepsY = 3;
Listing 2 declares and populates two instance variables that specify the incremental distance that the sprite will move each time the Update method is called. The horizontal and vertical incremental distances are 5 pixelsand 3 pixels respectively.
In this program, the computer will do its best to cause the Update method to be called once every 16.67 milliseconds or 60 times per second.
The Update and Draw methods are called at different rates depending on whether the Game property named IsFixedTimeStep is true or false.
Notification Switch
Would you like to follow the 'Xna game studio' conversation and receive update notifications?