Python - 基于pygame -2

本文详细介绍了使用Pygame进行事件处理的方法,包括如何利用pygame.event的各种功能如get(), wait(), poll()等处理用户输入;解释了如何通过MOUSEMOTION、MOUSEBUTTONDOWN等事件获取并响应鼠标动作;同时探讨了事件过滤机制以及如何生成自定义事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Demo - 2 事件检索

使用pygame.event 处理

pygame.event.get() : 打开门让所有人进入
pygame.event.wait() : 发生一个事件再继续,类似于你盯着看,来一个放一个(一般游戏不会使用,因为游戏往往是动态运作)
pygame.event.poll() : 一旦调用,会根据实际情形返回一个真实的事件,或者一个"什么都没有"

pygame.mouse.get_pos() : 得到当前鼠标位置

事件检索 使用事件集 处理
使用事件获得鼠标位置,处理鼠标事件

MOUSEMOTION : 事件会在鼠标动作的时候发生,它有三个参数:
       buttons – 一个含有三个数字的元组,三个值分别代表左键、中键和右键,1就是按下了。
       pos – 位置
       rel – 代表了现在距离上次产生鼠标事件时的距离

MOUSEBUTTONDOWN / MOUSEBUTTONUP : # button – 代表了哪个按键被操作
                                pos – 位置

事件过滤

pygame.event.set_blocked(事件名) :      eg:pygame.event.set_blocked([KEYDOWN, KEYUP]),如果设置参数None,那么所有的事件都被打开了,
pygame.event.set_allowed() : 与上面相对的,我们使用来设定允许的事件。

产生事件 eg:

my_event = pygame.event.Event(KEYDOWN, key=K_SPACE, mod=0, unicode=u' ')

或者:

my_event = pygame.event.Event(KEYDOWN, {"key":K_SPACE, "mod":0, "unicode":u' '})
pygame.event.post(my_event)

产生自定义全新事件

 CATONKEYBOARD = USEREVENT + 1
 my_event = pygame.event.Event(CATONKEYBOARD, message="Bad cat!")

 pgame.event.post(my_event)

然后获得它

for event in pygame.event.get():
   if event.type == CATONKEYBOARD:
      print event.message
2835490-8f55a5a9205d2302.png
Pygame-事件检索.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值