模块四: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()创建一个用户自定义的新事件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值