2012-04-09 5 views
5

diese Zeilen in der pygame Schleife vor:pygame.event.Event() Typ == pygame.QUIT, Verwirrung

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

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

Von dem, was ich verstehe die Funktion pygame.event.poll() ein schafft Instanz der Event-Klasse im Ereignismodul des pygame-Pakets.

I. Jetzt ev.type ist ein Attribut Aufruf (?), Aber woher weiß ich, welche Werte es haben kann? Wie kann man anhand der pygame-Dokumentation sogar erkennen, dass es die Möglichkeit hat, pygame.QUIT gleichzustellen?

II. Was genau ist pygame.QUIT? Wie bekommt es einen Wert?

III. help('pygame.QUIT') sagt pygame.QUIT = class int(object). Wie nennst du diese Konstruktion?

Antwort

6
ev = pygame.event.poll() 

ist ein Aufruf einer Funktion, die ein einzelnes Ereignis aus der Ereigniswarteschlange zurückgibt (im Grunde eine Liste der Dinge, die geschehen sind, dass Ihre Anwendung vielleicht wissen wollen). Es weist dieses Ereignis (welches ein Objekt Event ist) der Variablen ev zu.

ev.type 

erhält den Wert des type Attribut dieses Event Objekt, das eine numerische Konstante ist.

== pygame.QUIT 

überprüft, um zu sehen, ob es die numerische Konstante als pygame.QUIT definiert gleich ist.

Die möglichen Ereignistypen werden bei http://www.pygame.org/docs/ref/event.html aufgeführt - ich habe Kopie kleistert die Liste auch hier (die auch die zugehörigen Attribute mit jedem Ereignis übergeben Listen):

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 
4

pygame.QUIT ist nur eine Konstante int das wird innerhalb des pygame Moduls definiert.

>>> import pygame 
>>> pygame.QUIT 
12 

Dies ist die relevante Seite in der Dokumentation: http://www.pygame.org/docs/ref/event.html. Sie können alle möglichen Ereignistypen sehen (direkt über den Kommentaren).

4

pygame.QUIT wird gesendet, wenn der Benutzer auf die Schaltfläche "X" des Fensters klickt, oder wenn das System "fordert", dass der Prozess beendet wird. Wenn es ignoriert wird, kann es trotzdem vom System gelöscht werden. Sie können speichern, bevor Sie beenden.