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」按鈕時,或系統「要求」退出進程時發送。如果忽略,它仍然可以被系統殺死。它可以讓你在退出之前保存。