Meet Pygame 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.set_mode((x, y)) screen = pygame.display.get_surface() pygame.display.flip() pygame.display.update(dirty)
Surfaces The basic element of graphics pygame.image.load(file).convert_alpha() vs.set_colorkey((r,g,b)) dest.blit(src, (x, y))
Formats Native support for the following: SVG will need to worked out Stay tuned... JPEGPNGGIFBMPPCX TGATIFLBMPBMXPM
The Loop while True:
The Loop while True:
Timing from pygame.time import Clock clock = Clock() delta = clock.tick(30)
The Loop while True:
Event Handling for evt in pygame.event.get(): if evt.type == pygame.QUIT: sys.exit()...
Event Handling Other types: QUITKEYUPKEYDOWN MOUSEMOTIONMOUSEBUTTONUPMOUSEBUTTONDOWN
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:
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:
Drawing.draw(dest) Dirty updates pygame.draw.update(dirty)
Rects pygame.Rect(left,top,width,height) surf.get_rect() Always at (0,0) Attributes: topbottomleftrighttopleftbottomleft toprightbottomrightmidtopmidbottommidleftmidright centercenterxcenterysizewidthheight
Collisions 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 Try to avoid it for now.
More? me.