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

时间:2012-04-09 22:31:30

标签: python class pygame

在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)。你怎么称呼这个建筑?

4 个答案:

答案 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' 检测窗口何时关闭,不知道这是否有帮助,但它可以解决您的问题