<< Chapter < Page
  Xna game studio     Page 7 / 12
Chapter >> Page >

Listing 6 . Adjust column and row counters.

if(++spriteCol == spriteColLim){ //Column limit has been hit, reset the// column counter and increment the // funSequenceCnt.spriteCol = 0; funSequenceCnt++;

Execute the pause sequence if it is time for it

The last statement in Listing 6 increments the funSequenceCnt . The first statement in Listing 7 tests to see if it has a value of 5. If so, all five cycles of the fun sequence have been executed and the code in the body ofthe if statement that begins at the top of Listing 7 will be executed. The purpose of this code is to execute two cycles of the pausesequence.

Listing 7 . Execute the pause sequence if it is time for it.

if((funSequenceCnt == 5) || (spriteRow == 1)){ spriteRow = 1;//advance to second row//Increment the pause sequence counter. pauseSequenceCnt++;//After two cycles in the pause mode, reset // variables and start the overall cycle// again. if(pauseSequenceCnt == 3){spriteRow = 0; funSequenceCnt = 0;pauseSequenceCnt = 0; }//end if on pauseSequenceCnt}//end if on funSequenceCnt }//end if on spriteColLim in

The conditional clause

The conditional clause in the if statement at the top of Listing 7 also tests to see if the row counter is pointing to row 1. If so, this means that the pause cycle has already begun and should be continued. Therefore,the body of that if statement will be executed. In other words, the body of the if statement will be executed if the funSequenceCnt is equal to 5 or the spriteRow is equal to 1.

Set the row counter to 1

The first statement in the body of the if statement sets the row counter to 1. This is necessary because control may have just entered thebody of the if statement for the first time following completion of five cycles using the sprites in row 0 (the top row in Figure 1 ).

Increment the pauseSequenceCnt

Then Listing 7 increments the pauseSequenceCnt and compares it with the literal value 3. If there is a match, two cycles of animation usingthe sprite images in the bottom row of Figure 1 have been completed and it's time to return to the five cycles using the sprite images in the top row of Figure 1 .

To accomplish this, the row counter, the funSequenceCnt , and the pauseSequenceCnt are all set to 0. This will cause five cycles using the sprite images in the top row of Figure 1 to be executed before control will once again enter the code in Listing 7 .

Adjust sprite position and frame rate

The code that we have examined so far mainly deals with selecting the sprite image to draw each time the Draw method is called. We haven't dealt with the location where the sprite will be drawn in the game window, theorientation of the sprite when it is drawn, and the frame animation rate of fast versus slow .

Listing 8 adjusts these drawing parameters.

Listing 8 . Adjust sprite position and frame rate.

if((spriteRow == 0) || ((spriteRow == 1)&&(spriteCol == 0))) { msPerFrame = fast;spritePosition.X += frameWidth * scale / slide; }else if ((spriteRow == 1) || ((spriteRow == 0)&&(spriteCol == 0))){ //Stop and display images.msPerFrame = slow; }//end if-else

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