栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

模块四:event模块

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

模块四:event模块

事件类型

pyygame 定义了一个专门用来处理事件的结构,即事件队列,该结构遵循遵循队列“先到先处理”的基本原则,通过事件队列,我们可以有序的、逐一的处理用户的操作(触发事件)。下述表格列出了 pygame 中常用的游戏事件:

事件产生途径参数
QUIT用户按下关闭按钮none
ATIVEEVENTPygame被激活或者隐藏gain, state
KEYDOWN键盘被按下unicode, key, mod
KEYUP键盘被放开key, mod
MOUSEMOTION鼠标移动pos, rel, buttons
MOUSEBUTTONDOWN鼠标按下pos, button
MOUSEBUTTONUP鼠标放开pos, button
JOYAXISMOTION游戏手柄(Joystick or pad)移动joy, axis, value
JOYBALLMOTION游戏球(Joy ball)移动joy, axis, value
JOYHATMOTION游戏手柄(Joystick)移动joy, axis, value
JOYBUTTONDOWN游戏手柄按下joy, button
JOYBUTTONUP游戏手柄放开joy, button
VIDEORESIZEPygame窗口缩放size, w, h
VIDEOEXPOSEPygame窗口部分公开(expose)none
USEREVENT触发了一个用户事件code

当使用 SDL2 编译时,pygame 具有这些附加事件及其属性。

事件产生途径参数
AUDIODEVICEADDED添加音频设备which, iscapture
AUDIODEVICEREMOVED移除音频设备which, iscapture
FINGERMOTION手指移动touch_id, finger_id, x, y, dx, dy
FINGERDOWN手指按下touch_id, finger_id, x, y, dx, dy
FINGERUP手指松开touch_id, finger_id, x, y, dx, dy
MOUSEWHEEL鼠标滚轮滑动which, flipped, x, y, touch
MULTIGESTURE手势touch_id, x, y, pinched, rotated, num_fingers
TEXTEDITING文本编辑text, start, length
TEXTINPUT文本输入text

从 pygame 2.0.1 开始,有一组新的事件,称为窗口事件。

事件描述
WINDOWSHOWN窗口显示
WINDOWHIDDEN窗口隐藏
WINDOWEXPOSED窗口被外部事件所更新
WINDOWMOVED窗口移动
WINDOWRESIZED窗口大小改变
WINDOWSIZECHANGED窗口大小改变
WINDOWMINIMIZED窗口最小化
WINDOWMAXIMIZED窗口最大化
WINDOWRESTORED恢复窗口
WINDOWENTER鼠标进入窗口
WINDOWLEAVE鼠标离开窗口
WINDOWFOCUSGAINED窗口得到焦点
WINDOWFOCUSLOST窗口失去焦点
WINDOWCLOSE关闭窗口
WINDOWTAKEFOCUS窗口取得焦点
WINDOWHITTESTWindow has a special hit test
事件方法

pygame.event 模块提供了处理事件队列的常用方法,如下表所示:

方法说明
pygame.event.get()从事件队列中获取一个事件,并从队列中删除该事件
pygame.event.wait()阻塞直至事件发生才会继续执行,若没有事件发生将一直处于阻塞状态
pygame.event.set_blocked()控制哪些事件禁止进入队列,如果参数值为None,则表示禁止所有事件进入
pygame.event.set_allowed()控制哪些事件允许进入队列
pygame.event.pump()调用该方法后,Pygame 会自动处理事件队列
pygame.event.poll()会根据实际情形返回一个真实的事件,或者一个None
pygame.event.peek()检测某类型事件是否在队列中
pygame.event.clear()从队列中清除所有的事件
pygame.event.get_blocked()检测某一类型的事件是否被禁止进入队列
pygame.event.post()放置一个新的事件到队列中
pygame.event.Event()创建一个用户自定义的新事件
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/701032.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号