event-用于与事件和队列进行交互的Pygame模块

pygame.event.pump—内部处理pygame事件处理程序

pygame.event.get—从队列中获取事件

pygame.event.poll—从队列中获取单个事件

pygame.event.wait—等待队列中的单个事件

pygame.event.peek—测试事件类型是否在队列中等待

pygame.event.clear—从队列中删除所有事件

pygame.event.event_name—从中获取字符串名称和事件ID

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.Event —创建一个新的事件对象

pygame.event.EventType —用于表示SDL事件的pygame对象

Pygame通过事件队列处理所有事件消息。此模块中的例程可帮助您管理该事件队列。输入队列严重依赖于pygame显示模块。如果显示尚未初始化且未设置视频模式,则事件队列将无法正常工作。该队列是pygame.event.EventTypepygame对象的常规队列,用于表示SDL事件事件对象,有多种方法可以访问它包含的事件。从简单地检查事件的存在,直接从堆栈中抓取它们。所有事件都有一个类型标识符。此事件类型是在的值之间 NOEVENT和NUMEVENTS。所有用户定义的事件都可以具有USEREVENT或更高的值 。建议确保您的活动ID遵循此系统。要获得各种输入设备的状态,您可以放弃事件队列并直接使用适当的模块访问输入设备; 鼠标,键和操纵杆。如果您使用此方法,请记住pygame需要与系统窗口管理器和平台的其他部分进行某种形式的通信。为了使pygame与系统保持同步,您需要调用 pygame.event.pump()以保持最新状态。你通常会在每个游戏循环中调用此函数一次。事件队列提供了一些简单的过滤。这可以通过阻止队列中的某些事件类型来略微提高性能,使用 pygame.event.set_allowed()和pygame.event.set_blocked()来处理此过滤。所有事件都默认为允许。应该从主线程调用事件子系统。如果要将事件从其他线程发布到队列中,请使用紧固包。在设备初始化之前,操纵杆不会发送任何事件。一个EventType事件对象包含的事件类型标识符和一组构件的数据。事件对象不包含方法函数,只包含成员数据。从pygame事件队列中检索EventType对象。您可以使用该pygame.event.Event()功能创建自己的新事件。SDL事件队列对其可以保留的事件数有一个上限(标准SDL 1.2为128)。当队列变满时,新事件将被悄然丢弃。为了防止丢失事件,特别是发出退出命令信号的输入事件,您的程序必须定期检查事件并处理它们。要加速队列处理,请使用pygame.event.set_blocked()控制队列上允许哪些事件来限制哪些事件排队。所有EventType实例都有一个事件类型标识符,可作为EventType.type属性访问 。您还可以通过该EventType.__dict__属性完全访问事件对象的属性。所有其他成员查找将传递到对象的字典值。在调试和试验时,您可以打印事件对象以快速显示其类型和成员。来自系统的事件将根据类型具有一组有保证的成员项。以下是使用每种事件类型定义的事件属性的列表。

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

事件支持平等比较。如果它们是相同的类型且具有相同的属性值,则两个事件是相等的。不平等检查也有效。

pygame.event.pump() 内部处理pygame事件处理程序

pump() - >None

对于游戏的每个帧,您需要对事件队列进行某种调用。这可确保您的程序可以在内部与操作系统的其余部分进行交互。如果您未在游戏中使用其他事件功能,则应调用pygame.event.pump()允许pygame处理内部操作。如果程序通过另一个pygame.eventpygame模块一致地处理队列上的事件以与事件和队列函数进行交互,则不需要此函数。必须在事件队列内部处理重要事项。主窗口可能需要重新绘制或响应系统。如果您未能长时间调用事件队列,系统可能会判断您的程序已被锁定。

pygame.event.get() 从队列中获取事件

get() - > Eventlist

get(type) - > Eventlist

get(typelist) - > Eventlist

这将获取所有消息并将其从队列中删除。如果给出类型或类型序列,则只从队列中删除这些消息。如果您只从队列中获取特定事件,请注意该队列最终可能会填满您不感兴趣的事件。

pygame.event.poll() 从队列中获取单个事件

poll() - > EventType实例

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

pygame.event.wait() 等待队列中的单个事件

wait() - > EventType实例

从队列中返回单个事件。如果队列为空,则此函数将等待,直到创建一个。返回后,事件将从队列中删除。程序在等待时,它将处于空闲状态。这对于想要与其他应用程序共享系统的程序非常重要。

pygame.event.peek() 测试事件类型是否在队列中等待

peek(type) -> bool

peek(typelist) -> bool

如果给定类型的任何事件在队列上等待,则返回true。如果传递了一系列事件类型,则如果队列中有任何事件,则返回True。

pygame.event.clear() 从队列中删除所有事件

clear() -> None

clear(type) -> None

clear(typelist) -> None

从队列中删除特定类型的所有事件或事件。pygame.event.get()除了没有返回之外,这具有相同的效果。清除完整事件队列时,这可能会稍微提高效率。

pygame.event.event_name() 从中获取字符串名称和事件ID

event_name(type) - > string

Pygame使用整数id来表示事件类型。如果要向用户报告这些类型,则应将它们转换为字符串。这将返回事件类型的简单名称。该字符串采用WordCap样式。

pygame.event.set_blocked() 控制队列中允许哪些事件

set_blocked(type) - >None

set_blocked(typelist) - >None

set_blocked(无) - >None

不允许在事件队列中显示给定的事件类型。默认情况下,所有事件都可以放在队列中。多次禁用事件类型是安全的。如果将None作为参数传递,则会产生相反的效果,并且ALL 允许将事件类型放在队列中。

pygame.event.set_allowed() 控制队列中允许哪些事件

set_allowed(type) - >None

set_allowed(typelist) - >None

set_allowed(None) - >None

允许给定的事件类型出现在事件队列中。默认情况下,所有事件都可以放在队列中。多次启用事件类型是安全的。如果将None作为参数传递,NONE则允许将事件类型放在队列中。

pygame.event.get_blocked() 测试是否从队列中阻止了某种类型的事件

get_blocked(type) - > bool

如果从队列中阻止给定的事件类型,则返回true。

pygame.event.set_grab() 控制与其他应用程序共享输入设备

set_grab(bool) - >None

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

pygame.event.get_grab() 测试程序是否共享输入设备

get_grab() - > bool

在为此应用程序获取输入事件时返回true。使用 pygame.event.set_grab()来控制这种状态。

pygame.event.post() 在队列上放置一个新事件

post(Event) -> None

这会在事件队列的末尾放置一个新事件。稍后将从其他队列函数中检索这些事件。这通常用于pygame.USEREVENT在队列上放置事件。虽然可以放置任何类型的事件,但如果使用系统事件类型,则程序应确保使用适当的值创建标准属性。如果SDL事件队列已满,则会引发pygame.error标准的pygame异常。

pygame.event.Event() 创建一个新的事件对象

Event(type, dict) -> EventType instance

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

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

pygame.event.EventType 用于表示SDL事件的pygame对象

pygame.event.EventType.type—SDL事件类型标识符

pygame.event.EventType .__ dict__ —事件对象属性字典

表示SDL事件的Python对象。使用Event函数调用创建用户事件实例。该事件类型类型不是直接调用。EventType实例支持属性分配和删除。

type SDL事件类型标识符。

type - > int

只读。例如,预定义的事件标识符是QUIT和MOUSEMOTION。对于用户创建的事件对象,这是为创建新事件对象而传递的类型参数。pygame.event.Event()

__dict__ 事件对象属性字典

__dict__ - > dict

只读。事件的事件类型特定属性。例如,这将包含KEYDOWN事件的unicode,key和mod属性 。的字典属性是同义词,为了向后兼容。

pygame之event模块相关推荐

  1. pygame中event模块方法详解

    目录 pygame.event.pump() pygame.event.get() pygame.event.poll() pygame.event.wait() pygame.event.peek( ...

  2. Pygame详解(四):event 模块(有USEREVENT事件)

    pygame.event 用于处理事件与事件队列的 Pygame 模块. 函数 pygame.event.pump()  -  让 Pygame 内部自动处理事件 pygame.event.get() ...

  3. Python pygame(GUI编程)模块最完整教程(1)

    提示:下滑文章左侧可以查看目录! 1 初识pygame 1.1 简介 参考资料:About - pygame wiki pygame是python中一个流行的GUI编程模块,是专门为了开发游戏而设计的 ...

  4. nginx中的event模块

    event中将事件驱动模块,由于支持跨平台,抽象出了event模块.它支持的event类型有: 1.AIO(异步I/O) 2./dev/poll(solaris和unix特有) 3.epoll(lin ...

  5. mass Framework event模块 v8

    最近对事件模块进行疯狂升级的成果. define("event", top.dispatchEvent ? ["$node"] : ["$node&q ...

  6. jQuery源码分析--Event模块(1)

    jQuery的Event模块提供了强大的功能:事件代理,自定义事件,自定义数据等.今天记录一下它实现的原理. 我们都知道,在js的原生事件中,有事件对象和回调函数这两样东西.但是事件对象是只读的,所以 ...

  7. pygame中draw模块方法详解

    目录 pygame.draw.rect() pygame.draw.polygon() pygame.draw.circle() pygame.draw.ellipse() pygame.draw.a ...

  8. mass Framework event模块 v4

    event.js //========================================== // 事件模块(包括伪事件对象,事件绑定与事件代理) //================= ...

  9. nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers

    首先继续回忆下,之前子线程执行操作里面有一个未涉及的内容ngx_process_events_and_timers,今天我们就来研究下这个函数. 本篇文章来自于:http://blog.csdn.ne ...

最新文章

  1. es6 新增数据类型Symbol
  2. oracle 分析视图,ORACLE 性能视图的分析和使用
  3. 1.Jenkins 在windows下的安装与配置
  4. sklearn预处理转化流水线
  5. CocoaAsyncSocket 套接字
  6. q learning简单理解_班级励志标语格言-生活其实很简单,过了今天就是明天
  7. ZooKeeper 特点有哪些?
  8. bzoj2822 [AHOI2012]树屋阶梯 dp
  9. 大数据_MapperReduce_协处理器_类似Mysql的触发器---Hbase工作笔记0024
  10. 大 Θ记号、大 Ω记号、空间复杂度、时间复杂度
  11. 拓端tecdat|图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
  12. Java面试——多线程面试题
  13. 中文版Excel 2007公式与函数应用宝典
  14. 基于51单片机的超声波测距
  15. 开源智能手表TTGO-WATCH上手把玩(0)环境配置
  16. ts快捷键 vscode_vscode这篇就够了
  17. 「CF1154F」Shovels Shop【背包DP】
  18. FreeRTOS任务切换过程深层解析
  19. 信息管理与信息系统考研专业方向计算机,信息管理与信息系统考研专业方向
  20. 【大数据框架及实战2】---初识

热门文章

  1. 在 uniapp 中使用 fontawesome
  2. TCHAR及char等相关知识
  3. 星际交流-全排列python题解
  4. batch_mini-batch_SGD
  5. 开源两大阵营告诉你开源License的根本区别
  6. “经济型”Win8.1 4G平板电脑
  7. reportviewer控件mysql_真正的全动态报表:ReportViewer+RDLC
  8. 【将金令】1.15晚评:金银势如破竹,如何释放?
  9. ios App Technical Support
  10. 大连理工大学2022上半年最优化方法大作业