Professional Documents
Culture Documents
Noah Kantrowitz
June 8, 2007
The Basics
• Cross-platform
• Based on SDL (don’t quote me on that)
• Handle input (keyboard, mouse) and output
(graphics, audio)
Starting Up
• import pygame
• pygame.init()
• Cue music ...
The Screen
• screen = pygame.display.get_surface()
• pygame.display.flip()
• pygame.display.update(dirty)
Surfaces
while True:
<timing>
<event handling>
<update phase>
<draw phase>
The Loop
while True:
<timing>
<event handling>
<update phase>
<draw phase>
Timing
while True:
<timing>
<event handling>
<update phase>
<draw phase>
Event Handling
• Other types:
QUIT KEYUP KEYDOWN
MOUSEMOTION MOUSEBUTTONUP MOUSEBUTTONDOWN
Key Events
• evt.key == pygame.K_a
• See the Pygame documentation for the full
list of key constants.
Mouse Events
• evt.pos
• evt.button (for the button events)
The Loop
while True:
<timing>
<event handling>
<update phase>
<draw phase>
Sprites
• pygame.sprite.Sprite
• class Foo(Sprite):
• Must call superclass __init__()
• .image, .rect
Groups
• pygame.sprite.Group
• RenderUpdates, OrderedUpdates
• .add(), .remove()
• .update(*args)
• More on these in a moment
The Loop
while True:
<timing>
<event handling>
<update phase>
<draw phase>
Drawing
• .draw(dest)
• Dirty updates
• pygame.draw.update(dirty)
Rects
• pygame.Rect(left,top,width,height)
• Rect-based
• spritecollide(sprite,group,kill)
• spritecollideany(sprite,group)
• groupcollide(group1,group2,kill1,kill2)
Sound
• pygame.mixer.Sound(file)
• .play(), .stop()
• pygame.mixer.music
Text
• http://www.pygame.org/docs
• Email me. (noah@laptop.org)