TableOfContents

pygame.event

pygame中用来与事件和队列进行交互的模块

Pygame通过一个事件队列来处理所有的事件消息。这个模块里面函数可以帮助你管理那个事件队列。输入队列很大程度的依赖于pygame的display模块。如果display没有初始化、视频模式还没有设置,则事件队列不能够工作。

队列是一个Event对象的普通队列,有各种不同的访问队列中的事件的方法。从简单的检查是否存在事件,到直接抓取所有的事件。

所有事件都有一个类型标志。这个事件类型的值在NOEVENT和NUMEVENTS之间。所有用户定义的事件类型的值可以是USEREVENT或者更大的值。强烈建议你的事件类型标志遵循这个系统习惯。

要获取各种输入设备的状态,你可以忽略事件队列,而通过适当的模块(比如mouse、key、joystick)直接访问输入设备。如果你使用这种方法,记住pygame需要和系统的窗口管理器及系统其它部分有某种形式的通讯。要保持pygame和系统的同步,你需要调用pygame.event.pump。通常在每次游戏循环中都要调用一次这个函数。

事件队列提供了简单的过滤的方法。使用pygame.event.set_allowed和pygame.event.set_blocked过滤事件,可以阻止特定类型的事件进入队列而帮助提高性能。默认情况下所有的事件都是允许的。

摇杆在初始化之前,不会发送任何事件。

一个Event对象包含一个事件类型,以及一组只读的数据成员。Event对象没有成员函数,只有数据。Event对象是从pygame的事件队列中获得的。你可以通过pygame.event.Event创建自己的事件。

你的程序必须采取一些必要的步骤防止队列溢出。如果程序没有定期清除队列或者把所有事件从队列中取走,它就可能会溢出。当队列溢出,会抛出一个异常。

所有的Event对象在Event.type中保存事件的类型标志。你也可以从Event.dict方法访问所有的Event的数据成员。所有其它的成员查找都是传给Event的字典值进行的。

当调试和试验的时候,你可以打印Event对象来显示它的类型和成员。系统里传来的事件,会根据类型保证有一组特定的成员。这里是一组Event类型及其对应的成员。

          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. pygame.event.pump

2. pygame.event.get

3. pygame.event.poll

4. pygame.event.wait

5. pygame.event.peek

6. pygame.event.clear

7. pygame.event.event_name

8. pygame.event.set_blocked

9. pygame.event.set_allowed

10. pygame.event.get_blocked

11. pygame.event.set_grab

12. pygame.event.get_grab

13. pygame.event.post

14. pygame.event.Event

pygame.key

pygame.mouse

1. pygame.mouse.get_pressed

2. pygame.mouse.get_pos

3. pygame.mouse.get_rel

4. pygame.mouse.set_pos

5. pygame.mouse.set_visible

6. pygame.mouse.get_focused

7. pygame.mouse.set_cursor

8. pygame.mouse.get_cursor

pygame.cursors

1. pygame.cursors.compile

2. pygame.cursors.load_xbm

pygame.joystick

pygame.time

The End

ch3n2k.com | Copyright (c) 2004-2020 czk.