《Python游戏编程入门》注-第4章6

《Python游戏编程入门》的"轮询鼠标"内容介绍了通过轮询鼠标实现实时显示鼠标位置和按键状态的游戏。

1 游戏介绍

实时显示鼠标位置和按键状态的游戏如图1所示。

图1 实时显示鼠标位置和按键状态

从图1中可以看到,游戏界面主要分为上下两部分。其中,上半部分通过鼠标事件的方式获取并显示鼠标位置、移动距离、鼠标按键按下和释放的状态;下半部分通过"轮询鼠标"的方式获取并显示鼠标位置和鼠标按键状态。

2 游戏实现

2.1 通过鼠标事件的方式获取并显示鼠标信息

2.1.1 获取鼠标事件及鼠标信息

在"Pygame编程框架"的while True循环中,获取事件队列中的事件,并判断是否是鼠标事件,在《Python游戏编程入门注-第4章3中》提到,鼠标事件主要包括鼠标移动MOUSEMOTION、鼠标按键按下MOUSEBUTTONDOWN以及鼠标按键释放MOUSEBUTTONUP三种。代码如图2所示。

图2 获取鼠标事件及鼠标信息的代码

其中,mouse_x、mouse_y表示鼠标当前位置的衡中坐标;move_x、move_y表示鼠标移动的距离;mouse_down表示鼠标的哪个按键被按下;mouse_down_x、mouse_down_y表示鼠标按键被按下时位置的横纵坐标;mouse_up表示鼠标的哪个按键被释放;mouse_up_x、mouse_up_y表示鼠标按键被释放时位置的横纵坐标。以上变量在while True循环的外部定义,如图3所示。

图3 鼠标信息变量的定义

相关链接1 鼠标事件的相关知识请参考《Python游戏编程入门注-第4章3》

2.1.2 显示鼠标信息

通过图4所示代码显示鼠标信息。

图4 显示鼠标信息的代码

其中,print_text()是自定义函数,用来在指定位置显示指定信息。以上代码可以实现图1中上半部分的功能。

注意1 图4所示代码在while True循环中,screen.fill()函数之后。

相关链接2 print_text()函数的相关内容请参考《Python游戏编程入门注-第2章1》

2.2 通过"鼠标轮询"获取并显示鼠标信息

2.2.1 "鼠标轮询"获取并显示鼠标位置

"鼠标轮询"获取并显示鼠标位置的代码如图5所示。

图5 "鼠标轮询"获取并显示鼠标位置的代码

其中,第50行代码中的pygame.mouse模块中的get_pos()函数获取鼠标位置的横纵坐标,保存在x和y中;第51行代码显示获取到的数据。

2.2.2 "鼠标轮询"获取并显示鼠标按键信息

"鼠标轮询"获取并显示鼠标按键信息的代码如图6所示。

图6 "鼠标轮询"获取并显示鼠标按键信息的代码

其中,第52行中pygame.mouse模块中的get_pressed()函数获取鼠标的按键信息,保存在变量b1、b2和b3中。这三个变量分别表示鼠标左键、中键和右键的状态,按下键时,值是True,释放键时值是False。

相关推荐
TonyLee01732 分钟前
使用argparse模块以及shell脚本
python
Blossom.1181 小时前
Prompt工程与思维链优化实战:从零构建动态Few-Shot与CoT推理引擎
人工智能·分布式·python·智能手机·django·prompt·边缘计算
love530love2 小时前
Windows 11 下 Z-Image-Turbo 完整部署与 Flash Attention 2.8.3 本地编译复盘
人工智能·windows·python·aigc·flash-attn·z-image·cuda加速
MediaTea3 小时前
Python:模块 __dict__ 详解
开发语言·前端·数据库·python
jarreyer3 小时前
python,numpy,pandas和matplotlib版本对应关系
python·numpy·pandas
代码or搬砖4 小时前
HashMap源码
开发语言·python·哈希算法
顽强卖力5 小时前
第二章:什么是数据分析师?
笔记·python·职场和发展·学习方法
站大爷IP5 小时前
Python实现Excel数据自动化处理:从繁琐操作到智能流程的蜕变
python
BBB努力学习程序设计6 小时前
Python 进阶知识点精讲:上下文管理器(Context Manager)的原理与实战
python·pycharm
清水白石0086 小时前
《深入 super() 的世界:MRO 与 C3 线性化算法的全景解析与实战指南》
python