当前位置: 首页 > news >正文

Pygame中获取鼠标按键状态的方法

在《Pygame中获取鼠标位置的方法》中提到,可以通过鼠标事件和mouse模块中的函数获取鼠标位置,这两种方法同样适用于获取鼠标按键状态。

1 通过鼠标点击事件获取鼠标按键状态

通过鼠标点击事件获取鼠标按键状态的代码如图1所示。

图1 鼠标点击事件获取鼠标按键状态的代码

其中,第15行代码中的MOUSEBUTTONDOWN表示鼠标按键被按下时的事件,第16行代码将按键状态保存在b中。当分别按下了鼠标的左中右三个键时,b的值分别为1,2,3。接下来根据b的不同值进行不同处理,代码如图2所示。

图2 根据b的不同值进行不同处理

其中,b1、b2和b3分别表示鼠标左中右三个键的状态,True为按下,False为没有按下。之后通过《Pygame中获取鼠标位置的方法》中提到的方法显示这三个状态,如图3所示。

图3 显示鼠标按键的状态

当按下鼠标中键后,显示效果如图3。

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

通过mouse模块中的函数获取鼠标位置的代码如图4所示。

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

其中,mouse模块中的get_pressed()函数作用是获取鼠标按键状态,该函数的参数3对应的鼠标左中右三个按键,变量b4、b5和b6分别保存了三个按键的状态,True表示被按下,False表示没有被按下。之后使用《Pygame中获取鼠标位置的方法》中提到的方法显示这三个状态,如图4所示。

图4 显示鼠标按键的状态

从图4中可以看出,该情况表示鼠标右键被按下。此时两种方法显示的效果相同,说明两种方法等价。

3 完整代码

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

图5 程序的完整代码

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【高级编程】实用类详解(补充)StringBuffer类 和 StringBuilder类
  • UE5 C++ 读取图片插件(一)
  • 【刷题笔记】删除并获取最大点数粉刷房子
  • 2024国赛数学建模A题思路模型代码
  • 计算机网络 第1章 概述
  • C++的四种规范的类型转换
  • 坐牢第三十四天(c++)
  • shell判断、if语句
  • 探索C++编程技巧:计算两个字符串的最长公共子串
  • 内网Exadata使用git的配置过程
  • 一、VSCode安装IDF5.3
  • 数据结构---->内核链表
  • 解决:使用Charles查看本机的ip地址
  • 数学建模常见模型(下)
  • 【HTTP、Web常用协议等等】前端八股文面试题
  • [PHP内核探索]PHP中的哈希表
  • JS 中的深拷贝与浅拷贝
  • 【Linux系统编程】快速查找errno错误码信息
  • 2017届校招提前批面试回顾
  • C++11: atomic 头文件
  • javascript 总结(常用工具类的封装)
  • JavaScript对象详解
  • js写一个简单的选项卡
  • Redis字符串类型内部编码剖析
  • SpiderData 2019年2月16日 DApp数据排行榜
  • SpingCloudBus整合RabbitMQ
  • TCP拥塞控制
  • Terraform入门 - 3. 变更基础设施
  • 阿里云前端周刊 - 第 26 期
  • 编写高质量JavaScript代码之并发
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 关于 Cirru Editor 存储格式
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 基于Android乐音识别(2)
  • 基于游标的分页接口实现
  • 力扣(LeetCode)22
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前端工程化(Gulp、Webpack)-webpack
  • 前端面试之闭包
  • 使用SAX解析XML
  • 树莓派 - 使用须知
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 一些css基础学习笔记
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​2021半年盘点,不想你错过的重磅新书
  • ​决定德拉瓦州地区版图的关键历史事件
  • #NOIP 2014# day.1 T2 联合权值
  • $.ajax()方法详解
  • (31)对象的克隆
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C)一些题4
  • (二) 初入MySQL 【数据库管理】
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)spring boot建达集团公司平台 毕业设计 141538