pygame中event模块方法详解

目录

pygame.event.pump()

pygame.event.get()

pygame.event.poll()

pygame.event.wait()

pygame.event.peek()

pygame.event.clear()

pygame.event.event_name()

pygame.event.set_blocked()

pygame.event.set_allowed()

pygame.event.get_blocked()

pygame.event.set_grab()

pygame.event.get_grab()

pygame.event.post()

pygame.event.custom_type()

pygame.event.Event()

pygame.event.EventType


pygame.event.pump()

功能:内部进程pygame事件处理程序

属性:pump() -> None

  1. 对于游戏的每一帧,都需要对事件队列进行某种调用。这可以确保程序可以与操作系统的其他部分进行内部交互。如果在游戏中不使用其他事件函数,则应调用 pygame.event.pump() 允许pygame处理内部操作。
  2. 如果您的程序通过其他 pygame.event 函数处理队列上的事件,则不需要此函数功能。
  3. 在事件队列中有一些重要的事情必须在内部处理。主窗口可能需要重新喷绘或响应系统。如果调用事件队列的时间过长,系统可能会确定您的程序已锁定。

注意:此函数只应在初始化 pygame.display 的线程中调用。

pygame.event.get()

功能:从队列中获取事件

属性:

  • get(eventtype=None) -> Eventlist
  • get(eventtype=None, pump=True) -> Eventlist
  1. 此函数将获取所有消息并将其从队列中移除。如果给定类型或类型序列,则只会从队列中删除这些消息。
  2. 如果只从队列中获取特定事件,队列最终可能会填满其他事件。
  3. 如果 pump 是 True(默认),则会调用 pygame.event.pump() 。

New in pygame 1.9.5: pump

pygame.event.poll()

功能:从队列中获取单个事件

属性:poll() -> EventType instance

从队列中返回单个事件。如果事件队列为空,则 pygame.NOEVENT 将立即返回。返回的事件将从队列中删除。

注意:此函数只应在初始化 pygame.display 的线程中调用。

pygame.event.wait()

功能:等待队列中的单个事件

属性:wait() -> EventType instance

从队列中返回单个事件。如果队列为空,则此函数将等到创建一个队列。事件一旦返回就从队列中删除。当程序等待时,它将以空闲状态睡眠。对希望与其他应用程序共享系统的程序很重要。

注意:此函数只应在初始化 pygame.display 的线程中调用。

pygame.event.peek()

功能:测试事件类型是否正在队列中等待

属性:

  • peek(eventtype=None) -> bool
  • peek(eventtype=None, pump=True) -> bool
  1. 如果队列中有任何给定类型的事件正在等待,则返回 True 。如果传递了一系列事件类型且队列中存在,则返回 True 。
  2. 如果 pump 是 True(默认),则会调用 pygame.event.pump() 。

New in pygame 1.9.5: pump

pygame.event.clear()

功能:从队列中删除所有事件

属性:

  • clear(eventtype=None) -> None
  • clear(eventtype=None, pump=True) -> None
  1. 从队列中删除所有事件。如果给定eventtype ,则移除给定的事件或事件序列。此函数除了 None 也会被返回外效果与函数 pygame.event.get() 相同。当清除一个完整的事件队列时,效率会稍微高一些。
  2. 如果 pump 是 True(默认),则会调用 pygame.event.pump() 。

New in pygame 1.9.5: pump

pygame.event.event_name()

功能:从事件id获取字符串名称

属性:event_name(type) -> string

  1. 返回表示给定事件类型的名称(大写字母样式)的字符串。
  2. 为用户事件ID范围中的所有值返回"UserEvent" 。当事件类型不存在时返回"Unknown"。

pygame.event.set_blocked()

功能:控制队列中允许哪些事件

属性:

  • set_blocked(type) -> None
  • set_blocked(typelist) -> None
  • set_blocked(None) -> None
  1. 给定的事件类型不允许出现在事件队列中。默认情况下,所有事件都可以放置在队列中。
  2. 多次禁用事件类型是安全的。
  3. 如果 None 作为参数传递,则阻止将所有事件类型放置在队列中。

pygame.event.set_allowed()

功能:控制队列中允许哪些事件

属性:

  • set_allowed(type) -> None
  • set_allowed(typelist) -> None
  • set_allowed(None) -> None
  1. 允许给定的事件类型出现在事件队列中。默认情况下,所有事件类型都可以放置在队列中。
  2. 多次启用事件类型是安全的。
  3. 如果 None 作为参数传递,则允许将所有事件类型放置在队列中。

pygame.event.get_blocked()

功能:测试是否从队列中阻止了某一类型的事件

属性:

  • get_blocked(type) -> bool
  • get_blocked(typelist) -> bool

如果队列中阻止了给定的事件类型,则返回 True 。如果传递了一系列事件类型,则如果其中任何事件类型被阻止,则返回 True 。

pygame.event.set_grab()

功能:控制输入设备与其他应用程序的共享

属性:set_grab(bool) -> None

  1. 当程序在窗口环境中运行时,它将与其他有焦点的应用程序共享鼠标和键盘设备。如果程序将事件抓取设置为True,它将锁定程序中的所有输入。
  2. 最好不要总是获取输入,因为这样会阻止用户在系统上执行其他操作。

pygame.event.get_grab()

功能:测试程序是否共享输入设备

属性:get_grab() -> bool

此应用程序的输入事件被抓取时返回 True 。

pygame.event.post()

功能:在队列中放置新事件

属性:post(Event) -> None

  1. 将给定事件放置在事件队列的末尾。
  2. 通常用于在队列中放置 pygame.USEREVENT 事件。尽管可以放置任何类型的事件,但如果使用系统事件类型,程序应确保使用适当的值创建标准属性。
  3. 如果事件队列已满会提起 pygame.error 文件。

pygame.event.custom_type()

功能:生成自定义用户事件类型

属性:custom_type() -> int

  1. 预订一个 pygame.USEREVENT 事件用于自定义用途。
  2. 如果事件太多会提起 pygame.error 文件。

New in pygame 2.0.0.dev3.

pygame.event.Event()

功能:创建新事件对象

属性:

  • Event(type, dict) -> EventType instance
  • Event(type, **attributes) -> EventType instance

创建具有给定类型和属性的新事件。属性可以来自具有字符串键的字典参数,也可以来自关键字参数。

pygame.event.EventType

属性:表示事件的pygame对象

pygame.event.EventType.type 事件类型标识符
pygame.event.EventType.__dict__ 事件属性字典

一个pygame对象代表一个事件。用户事件实例通过调用 pygame.event.Event()函数创建。 EventType 类型不可直接调用。 EventType实例支持属性分配和删除。

type

功能:事件类型标识符

属性:type -> int

只读。对于用户创建的事件对象,这是传递给 pygame.event.Event()的类型参数。

__dict__

功能:事件属性字典

属性:__dict__ -> dict

只读。事件的事件类型特定属性。dict属性是向后兼容性的。【例如,KEYDOWN事件的属性是unicode、key和mod。】

New in pygame 1.9.2: Mutable attributes.

 

 

整理自:https://www.pygame.org/docs/ref/event.html

你可能感兴趣的:(pygame中event模块方法详解)