事件相关函数
- pygame.event,get()
从事件队列中获取事件列表,即获得所有被队列的事件
增加参数,获得某类或某些类事件
pygame.event.get(type)
pygame.event.get(typelist) - pygame.event,poll()
从事件队列中获得一个事件
时间获取将从事件队列中删除,如果事件队列为空,则返回event.NOEVENT - pygame.event,post(Event)
产生一个事件,并将其放入事件队列
一般用于放置用户自定义事件(pygame.USEREVENT)
也可以用于放置系统定义事件(如鼠标键盘等),给定参数 - pygame.event,Event(type, dict)
创建一个给定类型的事件
其中,事件的属性和值采用字典类型复制,属性名采用字符串形式
如果创建已有事件,属性需要一致
自定义方法
确定触发条件
首先,要确定什么时候触发,当达到触发条件,将事件加入事件队列
增加事件
新建事件
使用到的方法pygame.event,Event(type, dict)
- 参数说明
- type:参数的类型,所有的事件类型都是个整数类型
- dict:一个字典,这个事件的一些参数
将事件加入事件队列
使用方法pygame.event,post(Event)
在新建事件中,会返回一个Event对象,使用这个方法将这个对象加入事件队列
事件获取
使用pygame.event,get()方法获取事件队列的列表,
for event in pygame.event.get():
if event.type == pygame.USEREVENT:
sys.exit()
简易代码
import pygame
from sys import exit
pygame.init()
size = (600, 400)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("用户自定义事件")
while True:
mouse_pos = pygame.mouse.get_pos()
#设置事件触发类型
MY_EVENT = pygame.USEREVENT + 1
#设置事件触发条件:鼠标移动到指定区域
if 225 < mouse_pos[0] < 375 and 150 < mouse_pos[1] < 250:
#增加一个事件
my_event = pygame.event.Event(MY_EVENT, {"message": "事件触发"})
#将这个事件加入到事件队列
pygame.event.post(my_event)
for event in pygame.event.get():
#查看事件类型
if event.type == MY_EVENT:
#打印
print(event.message)
if event.type == pygame.QUIT:
exit()