📝 Worksheet← Lesson← Course
BitWithBite
Pygame Mastery · Quick Reference

User Input Cheat Sheet

Pygame Mastery
In one line: Keyboard and mouse events via pygame.event.get() for one-off actions, pygame.key.get_pressed() for continuous held-key movement.

Key Ideas

1KEYDOWN/KEYUP. Fire once per press/release — correct for one-shot actions like jump or pause, wrong for smooth movement.
2key.get_pressed(). Returns a snapshot of every key's held state each frame — the right tool for continuous movement (WASD/arrows).
3Mouse Position. pygame.mouse.get_pos() returns the current (x,y) every frame; MOUSEMOTION events also carry it.
4Mouse Buttons. MOUSEBUTTONDOWN/UP events carry event.button (1=left, 2=middle, 3=right) and event.pos.
5Dragging. Track a dragging flag: set True on MOUSEBUTTONDOWN over the object, False on MOUSEBUTTONUP, move it on MOUSEMOTION while True.
6Scroll Wheel. MOUSEWHEEL events carry event.y (+1 up, -1 down) — used for zoom or menu scrolling.

Continuous Movement Pattern

keys = pygame.key.get_pressed()
dx = 0
if keys[pygame.K_LEFT]: dx = -1
if keys[pygame.K_RIGHT]: dx = 1
player.x += dx * speed * dt

Event vs Polling

One-shot action (jump, pause, shoot)
Use event.type == pygame.KEYDOWN
Continuous movement (walk, run)
Use pygame.key.get_pressed()
KeyboardMouseEvent QueueGame Loop
Keyboard and mouse activity fills pygame's event queue each frame; the game loop drains it via pygame.event.get().