Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pygame.event.Event().type == pygame.QUIT, confusion

Consider these lines in the pygame loop:

ev = pygame.event.poll()
ev.type == pygame.QUIT

From: http://openbookproject.net/thinkcs/python/english3e/pygame.html

From what I understand the function pygame.event.poll() creates an instance of the Event class in the event module of the pygame package.

I. Now ev.type is an attribute call(?) but how do I know which values it can have? How can you even tell from the pygame documentation that it has the possibility to equal pygame.QUIT?

II. What exactly is pygame.QUIT? How does it get a value?

III. help('pygame.QUIT') says pygame.QUIT = class int(object). How do you call this construction?

like image 247
Bentley4 Avatar asked Apr 09 '12 22:04

Bentley4


2 Answers

ev = pygame.event.poll()

is a call to a function that returns a single event from the event queue (basically, a list of things that have happened that your application might want to know about). It assigns that event (which is an Event object) to the variable ev.

ev.type

gets the value of the type attribute of that Event object, which is a numerical constant.

== pygame.QUIT

checks to see if it's equal the numerical constant defined as pygame.QUIT.

The possible event types are listed at http://www.pygame.org/docs/ref/event.html - I've copy-pasted the list here as well (which also lists the associated attributes passed with each event):

QUIT             none
ACTIVEEVENT      gain, state
KEYDOWN          unicode, key, mod
KEYUP            key, mod
MOUSEMOTION      pos, rel, buttons
MOUSEBUTTONUP    pos, button
MOUSEBUTTONDOWN  pos, button
JOYAXISMOTION    joy, axis, value
JOYBALLMOTION    joy, ball, rel
JOYHATMOTION     joy, hat, value
JOYBUTTONUP      joy, button
JOYBUTTONDOWN    joy, button
VIDEORESIZE      size, w, h
VIDEOEXPOSE      none
USEREVENT        code
like image 152
Amber Avatar answered Sep 30 '22 18:09

Amber


pygame.QUIT is sent when the user clicks the window's "X" button, or when the system 'asks' for the process to quit. If ignored, it can still be killed by the system. It lets you save, before quitting.

like image 24
ninMonkey Avatar answered Sep 30 '22 17:09

ninMonkey