24
Meet Pygame Noah Kantrowitz June 8, 2007

Meet Pygame

Embed Size (px)

DESCRIPTION

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)) - PowerPoint PPT Presentation

Citation preview

Meet PygameNoah 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 ...

JPEG PNG GIF BMP PCXTGA TIF LBM PBM XPM

The Loop

while True: <timing> <event handling> <update phase> <draw phase>

The Loop

while True: <timing> <event handling> <update phase> <draw phase>

Timing

•from pygame.time import Clock

•clock = Clock()

•delta = clock.tick(30)

The Loop

while True: <timing> <event handling> <update phase> <draw phase>

Event Handling

for evt in pygame.event.get(): if evt.type == pygame.QUIT: sys.exit() ...

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)

•surf.get_rect() Always at (0,0)

•Attributes: top bottom left right topleft bottomleft

topright bottomright midtop midbottom midleft midright

center centerx centery size width height

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?

•http://www.pygame.org/docs

•Email me. ([email protected])