2012-04-09 15 views
5

Hãy xem xét những dòng này trong vòng lặp pygame:pygame.event.Event loại() == pygame.QUIT, nhầm lẫn

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

Từ: http://openbookproject.net/thinkcs/python/english3e/pygame.html

Từ những gì tôi hiểu được chức năng pygame.event.poll() tạo ra một instance của lớp Event trong module sự kiện của gói pygame.

I. Bây giờ ev.type là một cuộc gọi thuộc tính (?) Nhưng làm thế nào để tôi biết được giá trị nó có thể có? Làm thế nào bạn có thể thậm chí kể từ tài liệu pygame rằng nó có khả năng tương đương với pygame.QUIT?

II. Chính xác thì pygame.QUIT là gì? Làm thế nào để nó có được một giá trị?

III. help('pygame.QUIT') nói pygame.QUIT = class int(object). Làm thế nào để bạn gọi xây dựng này?

Trả lời

6
ev = pygame.event.poll() 

là cuộc gọi đến hàm trả về một sự kiện duy nhất từ ​​hàng sự kiện (về cơ bản, danh sách những điều đã xảy ra mà ứng dụng của bạn có thể muốn biết). Nó gán sự kiện (mà là một đối tượng Event) vào biến ev.

ev.type 

được giá trị của các thuộc tính của type rằng Event đối tượng, mà là một hằng số.

== pygame.QUIT 

kiểm tra xem nó có bằng hằng số được định nghĩa là pygame.QUIT hay không.

Các loại sự kiện có thể được liệt kê ở http://www.pygame.org/docs/ref/event.html - Tôi đã copy-dán danh sách ở đây là tốt (mà cũng liệt kê các thuộc tính liên quan thông qua với mỗi sự kiện):

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 chỉ là một hằng số int điều đó xảy ra được xác định bên trong module pygame.

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

Đây là trang có liên quan trong tài liệu: http://www.pygame.org/docs/ref/event.html. Bạn có thể xem tất cả các loại sự kiện có thể xảy ra (ngay phía trên các nhận xét).

4

pygame.QUIT được gửi khi người dùng nhấp vào nút "X" của cửa sổ hoặc khi hệ thống 'yêu cầu' cho quá trình thoát. Nếu bị bỏ qua, nó vẫn có thể bị hệ thống giết. Nó cho phép bạn lưu, trước khi thoát.