Game Development Reference
In-Depth Information
17 - Graphics and Animation
milliseconds. There are 1000 milliseconds in a second, so 0.001 seconds equals 1
millisecond and 0.02 equals 20 milliseconds.
Some Small Modifications
Drawing as Fast as Possible
Just for fun, let's make some small modifications to our program so we can see what it
does. Try adding a # in front of line 90 (the time.sleep(0.2) line) of our animation
program. This will cause Python to ignore this line because it is now a comment. Now try
running the program.
Without the time.sleep() function call to intentionally slow down the program,
your computer will run through the game loop as fast as possible. This will make the
rectangles bounce around the screen so fast, they'll only look like a blur. Now you can see
why it is important for us to slow down the program with this line.
Drawing Trails of Blocks
Remove the # from the front of line 90 so that the line is no longer a comment and
becomes part of the program again. This time, comment out line 42 (the
windowSurface.fill(BLACK) line) by adding a # to the front of the line. Now run
the program.
Without the call to windowSurface.fill(BLACK) , we do not black out the entire
window before drawing the rectangles in their new position. This will cause trails of
rectangles to appear on the screen instead of individual rectangles. The trails appear
because all the old rectangles that are drawn in previous iterations through the game loop
don't disappear.
Remember that the blocks are not really moving. We are just redrawing the entire
window over and over again. On each iteration through the game loop, we redraw the entire
window with new blocks that are located a few pixels over each time. When the program
runs very fast, we make it is just one block each time. In order to see that we are just
redrawing the blocks over and over again, change line 90 to time.sleep(1.0) . This
will make the program (and the drawing) fifty times slower than normal. You will see each
drawing being replaced by the next drawing every second.
Summary: Pygame Programming
This chapter has presented a whole new way of creating computer programs. Our
programs before would stop and wait for the player to enter text. However, in our
animation program, we are constantly updating the data structures of things without waiting
for input from the player. Remember in our Hangman and Tic Tac Toe games we had data
structures that would represent the state of the board, and these data structures would be
passed to a drawBoard() function to be displayed on the screen. Our animation program
Search WWH ::




Custom Search