XNA Game-Themed CS1 Examples ( XGC1 )

Release 2.0 (XNA V3.1)
2/8/2010

Topic: Topic.5.RepetitionStructures
Example: Ex_2.SimpleWhile

Repetition: A Simple, Counting, While Loop


References:

Goals:



1. Obtain the example code

Download and unzip the zip file and you will see an ExampleProgram folder. Open the ExampleProgram folder, the EXE folder contains the compiled program and you can double click on the .sln file to work with the source code.

When the game starts, you'll see a screen that looks similar to this:


As you can see, this program draws three soccer balls across the screen.  The program also draws a basketball on the screen, and allows you to move the basketball using the right thumbstick.


2. Examining The Program:

Let's examine the C# source code that produces the behavior we see on-screen


FURTHER EXERCISES::  

  1. Start from a blank starter project (1000.201, if you need it), and re-do the code from memory as much as possible.  On your first try, do what you can, and keep the above code open so that when you get stuck, you can quickly look up what you forgot (and that after you finish a line, so that you can compare your line to the 'correct' line).  On the next try, do the same thing, but try to use the finished code less.  Repeat this until you can type everything, without refering the tutorial's code.
  2. Familiarizing Yourself With Loops: Practice
    For this exercise, you should use the same project that was explained in the above tutorial.
    Try modifying the program so that the program will draw five soccer balls on the screen, rather than three.  Can you draw 2, instead of 5 (or 10?)? 
  3. Familiarizing Yourself With Loops: Experimenting With The Loop
    For this exercise, you should use the same project that was explained in the above tutorial.
    Try setting the condition on the loop to be "counter < 0", and observe what happens.  Explain your observations.
  4. Familiarizing Yourself With Loops: Infinite Loops
    For this exercise, you should use the same project that was explained in the above tutorial. 
    Try commenting out the line that increments the counter variable, and observe what happens.  Next, think about the code, and explain what you're seeing.
    Hint: If UpdateWorld never ends, then the Update step in the Great Draw and Update Cycle never finishes - what do you think will happen to the cycle?
  5. Moving The Soccer Balls
    For this exercise, you should use the same project that was explained in the above tutorial.
    The goal for this exercise is to 'animate' the soccer balls, so that all the soccer balls slowly move rightwards across the screen. 
    Modify the provided solution so that your program contains another instance variable, initialized with a value like 0.0f.  Each time UpdateWorld is called, make sure that you first add, say, 5.0f to the instance variable, and then when you create the soccer balls, you add this number to the 'X' value of the new soccer balls' location.  Don't worry if the soccer balls leave the screen.
  6. Moving The Soccer Balls
    For this exercise, you should use the same project that was explained in the above tutorial.
    The goal for this exercise is to 'animate' the soccer balls, so that all the soccer balls slowly move leftwards across the screen.  Don't worry if the soccer balls leave the screen.  You should do this using a technique similar to the technique that was explained in the previous exericse.

Project home page : The Game-Themed Introductory Programming Project.
Kelvin Sung
Computing and Software Systems
University of Washington, Bothell
ksung@u.washington.edu
Michael Panitz
Business And Information Technology
Cascadia Community College
mpanitz@cascadia.eduu

Microsoft Logo This work is supported in part by a grant from Microsoft Research under the Computer Gaming Curriculum in Computer Science RFP, Award Number 15871 and 16531.
2/8/2010