pygame中的get_pressed()方法
本帖最后由 lzb1001 于 2022-11-17 01:45 编辑在pygame教学中,在响应用户的键盘操作时小甲鱼介绍说有两种方法:
I. 通过检测事件消息:适用于检测偶尔触发的键盘事件!
II. 调用key模块的get_pressed()方法:适用于频繁触发的键盘事件!
而在飞机大战最后一节检测用户的鼠标操作时,一段代码如下:
# 检测用户的鼠标操作
# 如果用户按下鼠标左键
if pygame.mouse.get_pressed(): # get_pressed适用于频繁触发的键盘事件,鼠标是否适用?
# 获取鼠标坐标
pos = pygame.mouse.get_pos()
# 如果用户点击“重新开始”
if again_rect.left < pos < again_rect.right and \
again_rect.top < pos < again_rect.bottom: # 鼠标的横、纵坐标分别在“重新开始”矩形内
# 调用main函数,重新开始游戏
main() # 运行主模块
# 如果用户点击“退出游戏”
elif gameover_rect.left < pos < gameover_rect.right and \
gameover_rect.top < pos < gameover_rect.bottom: # 鼠标的横、纵坐标分别在“退出游戏”矩形内,注意:这里要使用elif!!!
# 退出游戏,见上面while running循环开头时if event.type == QUIT内的代码
pygame.quit()
sys.exit()
我的问题或疑惑:
上面的代码中也用到了get_pressed,但所不同的是,这里是检测用户的鼠标操作,而小甲鱼介绍的是键盘操作,所以我想问是否可以套用小甲鱼所说的鼠标的get_pressed适用于频繁触发的鼠标事件呢?但像上面这段代码实现的功能好像又不属于频发触发的事件,不像在飞机大战中玩家必须持续按住键盘上的W\S\A\D或上下左右键来实现我方飞机的实时移动。
不知道大神是否明白我说的意思? 你说的可以检测键盘的应该是 pygame.key.get_pressed,这个函数与 pygame.mouse.get_pressed 函数是两个不同的函数 tommyyu 发表于 2022-11-17 14:41
你说的可以检测键盘的应该是 pygame.key.get_pressed,这个函数与 pygame.mouse.get_pressed 函数是两个不 ...
你说的可以检测键盘的应该是 pygame.key.get_pressed---对
这个函数与 pygame.mouse.get_pressed 函数是两个不同的函数---我知道
我的意思是:pygame.mouse.get_pressed 是不是 和pygame.key.get_pressed一样,都是适用于频繁触发的事件呢(只不过前者是鼠标事件,后者是键盘事件)呢? lzb1001 发表于 2022-11-17 21:35
你说的可以检测键盘的应该是 pygame.key.get_pressed---对
这个函数与 pygame.mouse.get_pressed 函数 ...
这个可以用来检测鼠标在这个时刻下的状态
但是我不太理解你说的“频繁触发”是什么意思{:10_282:}
页:
[1]