4.19: The Event Handling Loop
- Page ID
- 14453
for event in pygame.event.get(): # event handling loop if event.type == QUIT or (event.type == KEYUP and event.key == K_ESCAPE): pygame.quit() sys.exit() elif event.type == MOUSEMOTION: mousex, mousey = event.pos elif event.type == MOUSEBUTTONUP: mousex, mousey = event.pos mouseClicked = True
The for
loop on line 1 [72] executes code for every event that has happened since the last iteration of the game loop. This loop is called the event handling loop (which is different from the game loop, although the event handling loop is inside of the game loop) and iterates over the list of pygame.Event
objects returned by the pygame.event.get()
call.
If the event object was a either a QUIT
event or a KEYUP
event for the Esc key, then the program should terminate. Otherwise, in the event of a MOUSEMOTION
event (that is, the mouse cursor has moved) or MOUSEBUTTONUP
event (that is, a mouse button was pressed earlier and now the button was let up), the position of the mouse cursor should be stored in the mousex
and mousey
variables. If this was a MOUSEBUTTONUP
event, mouseClicked
should also be set to True
.
Once we have handled all of the events, the values stored in mousex
, mousey
, and mouseClicked
will tell us any input that player has given us. Now we should update the game state and draw the results to the screen.