2012-04-09 71 views
5

考虑在pygame的循环这些行:pygame.event.Event()==型pygame.QUIT,混乱

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

来源:http://openbookproject.net/thinkcs/python/english3e/pygame.html

从我了解的功能pygame.event.poll()创建pygame包的事件模块中的Event类的实例。

I.现在ev.type是一个属性调用(?),但我怎么知道它可以有哪些值?你甚至可以从pygame文档中知道它有可能与pygame.QUIT相等吗?

二, pygame.QUIT究竟是什么?它如何获得价值?

三, help('pygame.QUIT')pygame.QUIT = class int(object)。你如何称这种结构?

回答

6
ev = pygame.event.poll() 

是从事件队列返回单个事件调用一个函数(基本上,已经发生了您的应用程序可能想知道的事情的清单)。它将该事件(这是一个Event对象)分配给变量ev

ev.type 

获取Event对象,它是一个数值常数的type属性的值。

== pygame.QUIT 

检查它是否等于定义为pygame.QUIT的数值常数。

可能的事件类型列在http://www.pygame.org/docs/ref/event.html - 我复制粘贴此列表,以及(其中还列出了每个事件传递的相关属性):

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仅仅是一个常数int恰好在pygame模块中定义。

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

这是文档中的相关页面:http://www.pygame.org/docs/ref/event.html。你可以看到所有可能的事件类型(就在评论上面)。

4

pygame.QUIT当用户单击窗口的“X”按钮时,或系统“要求”退出进程时发送。如果忽略,它仍然可以被系统杀死。它可以让你在退出之前保存。