Pygame中获取鼠标位置的方法

在pygame中,可以通过鼠标通过鼠标事件或者mouse模块中的函数获取鼠标位置。

1 通过鼠标事件获取鼠标位置

《Pygame中监控键盘按键的方法》中提到,鼠标在移动的时候,系统就会把鼠标移动的事件放到事件队列中。

1.1 获取鼠标位置

可以通过while True语句从事件队列中取出鼠标移动事件,获取鼠标当前的位置。代码如图1所示。

图1 通过鼠标事件获取鼠标位置的代码

第12-13行定义的mouse_x1和mouse_y1两个变量用于保存获取到鼠标横轴坐标和纵轴坐标。第5行代码通过for循环与pygame.event.get()获取事件队列中的所有事件;第16-18行代码用于处理程序退出事件;第19-20行代码用于处理鼠标移动事件,MOUSEMOTION表示鼠标移动事件,event.pos中包含了鼠标的横纵坐标,分别保存到mouse_x1和mouse_y1中。

1.2 显示鼠标位置

获取鼠标的横纵坐标后,可以通过《Pygame显示文字》中提到的方法将坐标显示出来,代码如图2所示。

图2 显示鼠标位置的代码

相关链接1 显示文字代码的相关内容,请参考《Pygame显示文字》

2 通过mouse模块中的函数获取鼠标位置

pygame的mouse模块包含了获取鼠标信息的函数,可以通过其中的get_pos()函数获取鼠标所在的横纵坐标,代码如图3所示。

图3 通过mouse模块中的函数获取鼠标位置的代码

其中,第27行代码通过get_pos()函数获取到了鼠标的横纵坐标,并将其分别保存到mouse_x2和mouse_y2中。第28-29行在指定位置处显示获取到的坐标值。

3 程序运行效果

程序运行的效果如图4所示。

图4 程序运行效果

从图4中可以看出,随着鼠标在窗口中移动,右上角会显示鼠标的实时位置。在这两组数据中,白色数据为通过鼠标事件获取到的鼠标位置,红色数据为通过mouse模块中的函数获取鼠标位置。两组数据相同,说明这两种获取鼠标位置的方法是等价的。

4 程序完整代码

程序的完整代码如图5所示。

图5 程序的完整代码

相关推荐
禾乃儿_xiuer4 天前
《Python制作动态爱心粒子特效》
开发语言·python·生活·pygame·爱心代码·python表白·初学者入门
虞书欣的66 天前
Python小游戏27——飞翔的小鸟
开发语言·人工智能·游戏·pycharm·pygame
虞书欣的68 天前
Python小游戏24——小恐龙躲避游戏
开发语言·python·游戏·小程序·pygame
不太爱喝水10 天前
外星人入侵
开发语言·python·pygame
狂奔solar11 天前
DQN强化训练agent玩是男人就下xx层小游戏
python·pygame·dqn 强化
星和月11 天前
Python——飞机大战
python·pygame
狐凄11 天前
Python练习19
开发语言·python·pygame
虞书欣的611 天前
Python小游戏25——黄金矿工
开发语言·人工智能·游戏·小程序·pygame
其木王·王子12 天前
0. 渲染游戏画面
python·游戏·pygame
2301_8112123312 天前
python数据结构操作与可视化的应用
数据结构·python·信息可视化·django·virtualenv·pygame·tornado