|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 lzb1001 于 2022-11-17 01:45 编辑
在pygame教学中,在响应用户的键盘操作时小甲鱼介绍说有两种方法:
I. 通过检测事件消息:适用于检测偶尔触发的键盘事件!
II. 调用key模块的get_pressed()方法:适用于频繁触发的键盘事件!
而在飞机大战最后一节检测用户的鼠标操作时,一段代码如下:
# 检测用户的鼠标操作
# 如果用户按下鼠标左键
if pygame.mouse.get_pressed()[0]: # get_pressed适用于频繁触发的键盘事件,鼠标是否适用?
# 获取鼠标坐标
pos = pygame.mouse.get_pos()
# 如果用户点击“重新开始”
if again_rect.left < pos[0] < again_rect.right and \
again_rect.top < pos[1] < again_rect.bottom: # 鼠标的横、纵坐标分别在“重新开始”矩形内
# 调用main函数,重新开始游戏
main() # 运行主模块
# 如果用户点击“退出游戏”
elif gameover_rect.left < pos[0] < gameover_rect.right and \
gameover_rect.top < pos[1] < gameover_rect.bottom: # 鼠标的横、纵坐标分别在“退出游戏”矩形内,注意:这里要使用elif!!!
# 退出游戏,见上面while running循环开头时if event.type == QUIT内的代码
pygame.quit()
sys.exit()
我的问题或疑惑:
上面的代码中也用到了get_pressed,但所不同的是,这里是检测用户的鼠标操作,而小甲鱼介绍的是键盘操作,所以我想问是否可以套用小甲鱼所说的鼠标的get_pressed适用于频繁触发的鼠标事件呢?但像上面这段代码实现的功能好像又不属于频发触发的事件,不像在飞机大战中玩家必须持续按住键盘上的W\S\A\D或上下左右键来实现我方飞机的实时移动。
不知道大神是否明白我说的意思? |
|