在pygame循环中考虑以下几行:
ev = pygame.event.poll()
ev.type == pygame.QUIT
来自:http://openbookproject.net/thinkcs/python/english3e/pygame.html
根据我的理解,函数pygame.event.poll()
在pygame包的事件模块中创建了一个Event类的实例。
予。现在ev.type
是一个属性调用(?),但我怎么知道它可以有哪些值?你怎么能从pygame文档中告诉它有可能等于pygame.QUIT?
II。 pygame.QUIT究竟是什么?它是如何获得价值的?
III。 help('pygame.QUIT')
说pygame.QUIT = class int(object)
。你怎么称呼这个建筑?
答案 0 :(得分:6)
ev = pygame.event.poll()
是对函数的调用,该函数从事件队列返回单个事件(基本上,是您的应用程序可能想要了解的事件列表)。它将该事件(Event
对象)分配给变量ev
。
ev.type
获取该type
对象的Event
属性的值,这是一个数值常量。
== 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
答案 1 :(得分:5)
pygame.QUIT
" X"按钮,或系统“问”'为了退出过程。如果忽略,它仍然可以被系统杀死。它让你在退出之前保存。
答案 2 :(得分:4)
pygame.QUIT
只是一个常量int
,恰好在pygame
模块中定义。
>>> import pygame
>>> pygame.QUIT
12
这是文档中的相关页面:http://www.pygame.org/docs/ref/event.html。您可以看到所有可能的事件类型(在评论上方)。
答案 3 :(得分:0)
我不完全确定 pygame.event.poll()
到底是做什么的,但是您可以使用 for e in pygame.event.get(): if e.type == pygame.QUIT: print('the cross has been clicked'
检测窗口何时关闭,不知道这是否有帮助,但它可以解决您的问题>