pygame.fastevent
pygame module for interacting with events and queues
— initialize pygame.fastevent
— returns True if the fastevent module is currently initialized
— internally process pygame event handlers
— wait for an event
— get an available event
— get all events from the queue
— place an event on the queue

重要说明:此模块在PYGAME 2.2中已弃用

在PYGAME 2之前的旧版本PYGAME中, pygame.eventpygame module for interacting with events and queues 不太适合从不同的线程发布事件。该模块作为多线程使用的替代品(功能较少)。现在,强烈反对使用此模块,而是支持使用Main pygame.eventpygame module for interacting with events and queues 模块。这个模块将在未来的pyGame版本中删除。

下面提供了该模块的遗留文档

pygame.fastevent.init()
initialize pygame.fastevent
init() -> None

初始化pygame.fastevent.模块。

pygame.fastevent.get_init()
returns True if the fastevent module is currently initialized
get_init() -> bool

如果pygame.fastevent.模块当前已初始化,则返回True。

pygame.fastevent.pump()
internally process pygame event handlers
pump() -> None

对于游戏的每一帧,您将需要对事件队列进行某种调用。这确保了您的程序可以与操作系统的其余部分进行内部交互。

如果您的程序一直通过另一个处理队列上的事件,则此函数不是必需的 pygame.fasteventpygame module for interacting with events and queues 功能。

在事件队列中有一些重要的事情必须在内部处理。主窗口可能需要重新绘制或响应系统。如果调用事件队列的时间太长,系统可能会判定您的程序已锁定。

pygame.fastevent.wait()
wait for an event
wait() -> Event

返回队列中的当前事件。如果队列中没有等待的消息,则直到有消息可用时才会返回。有时,使用这种等待从队列中获取事件是很重要的,它将允许您的应用程序在用户不做任何操作时空闲。

pygame.fastevent.poll()
get an available event
poll() -> Event

返回队列中的下一个事件。如果队列中没有等待的事件,这将返回类型为NOEVENT的事件。

pygame.fastevent.get()
get all events from the queue
get() -> list of Events

这将获取所有消息并将其从队列中删除。

pygame.fastevent.post()
place an event on the queue
post(Event) -> None

这会将您自己的事件对象发送到事件队列中。您可以发布任何您想要的事件类型,但一定要小心。例如,如果您将MOUSEBUTTONDOWN事件发布到队列中,则接收该事件的任何代码都可能期望标准的MOUSEBUTTONDOWN属性可用,如‘pos’和‘Button’。

因为pygame.fastevent.post()可能需要等待队列清空,所以如果您试图将一个事件从处理事件的线程追加到一个完整的队列中,您可能会陷入死锁。因此,我不建议在SDL程序的主线程中使用此函数。




Edit on GitHub