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 程序的完整代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/422119.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gin-封装自动路由

O.0 思路一、API二、控制层三、自动路由核心四、分组路由外加中间件使用 思路 由于Java转Go直接使用的goframe框架,然学习Gin时觉得一个接口一个路由太麻烦,于是有了...1、在请求结构体中采用标签的形式,直接给出路由和请求方式 2、在控制层…

QXml 使用方法

VS2019 QT 编译工具链问题解决 使用winqtdeploy.exe 打包环境就可以正常运行,缺少某一个运行库引起的 简易使用python脚本编译运行 Python3 中的 slots 和 QT 中的 slots 宏定义重复, 放在不同的文件中进行调用可以避免 还是比较习惯从源码包引入(方便定…

【区块链通用服务平台及组件】信息数据流转验真技术研究项目 | FISCO BCOS应用案例

在日常工作中,相关系统每天会产生大量数据,系统之间有多种模式数据交互方式,数据监管工作量巨大,急需 数据追溯定位工具来辅助监管;数据在生产过程中经常会出现采集、提交、修改、删除等操作,需要对数据变更…

Vue(9)——.sync修饰符、ref和$refs、$nextTick

.sync 作用:可以实现子组件与父组件数据的双向绑定,简化代码。 特点:prop属性名,可以自定义,非固定位value 场景:封装弹框类的基础组件,visible属性 true显示,false隐藏 本质:就是 …

鸿蒙界面开发——组件(7):组件导航 页面路由

组件导航 (Navigation)(推荐) Navigation() Navigation(pathInfos: NavPathStack)Navigation是路由容器组件,一般作为首页的根容器,包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式。Navigation组件适用于模块内和跨模块的路由切换&#xff0c…

2024年金九银十最新版Java面试题及答案整理(持续更新)

2024年金九银十到了,发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全~这套互联网 Java 工程师面试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java面试、Spring、微服务、Linux、Spring…

文件加密最简单的方法有哪些?十个电脑文件加密方法【超详细】

在当今数字化和信息化的时代,数据已成为企业最重要的资产之一。内部数据外泄不仅可能导致商业秘密的丧失,还可能对企业的声誉和财务健康造成严重影响。为了有效防止内部数据外泄,企业需要实施综合的防泄密解决方案。以下是十大最佳防泄密解决…

内网安全-横向移动【3】

1.域横向移动-内网服务-Exchange探针 Exchange是一个电子右键服务组件,由微软公司开发。它不仅是一个邮件系统,还是一个消息与协作系统。Exchange可以用来构建企业、学校的邮件系统,同时也是一个协作平台,可以基于此开发工作流、…

19:I2C一:程序模拟I2C通信时序

I2C 1、什么是I2C2、I2C的通信时序2.1:起始信号2.2:停止信号2.3:主机向从机发送一个字节数据2.4:主机向从机读取一个字节数据2.5:主机接收应答2.6:主机发送应答 3、程序模拟I2C的通信时序3.1:指…

NX1872三维电气布线

电气部件审核与定义

Windows系统介绍

文章目录 1、Windows启动过程1.1 启动过程BIOS1.2 启动过程MBR1.3 启动过程 GPT1.4 启动过程BootMgr1.5 启动过程Winload.exe1.6 启动过程1.7 explorer.exe 2、Windows重要进程及组件2.1 注册表Services注册表服务管理器Services.mscsc.exe计划任务taskschd.msc计划任务schtask…

区块链学习笔记1--比特币

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。 从狭义上来说:区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学的方式保证的不可篡改和不可伪造的分布式账本。 意思就是…

第67期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…

组播 2024 9 11

PIM(Protocol Independent Multicast)是一种常用的组播路由协议,其独立于底层的单播路由协议,能够在多种网络环境中有效地实现多播路由功能。PIM主要有两种模式:PIM Sparse Mode (PIM-SM) 和 PIM Dense Mode (PIM-DM)&…

DDoS对策是什么?详细解说DDoS攻击难以防御的理由和对策方法

攻击规模逐年增加的DDoS攻击。据相关调查介绍,2023年最大的攻击甚至达到了700Gbps。 为了抑制DDoS攻击的危害,采取适当的对策是很重要的。 特别是在网站显示花费时间或频繁出现504错误的情况下,可能已经受到了DDoS攻击,需要尽早采…

Spring面试

一、对Spring的理解 (一)Spring的发展史 (二)Spring的体系结构 (三)Spring相关组件 1.Spring和SpringMVC的关系 2.Spring和SpringBoot的关系 3.Spring和SpringCloud的关系 4.Spring和SpringSecurity的…

C语言基础——⑩③数据结构——②栈和队列

一、栈(Stack) 1、基本概念 栈是一种逻辑结构,是特殊的线性表。特殊在: 只能在固定的一端操作 只要满足上述条件,那么这种特殊的线性表就会呈现一种“后进先出”的逻辑,这种逻辑就被称为栈。栈 在生活中到处可见,比…

为什么企业需要数据目录?

想象一下,如果在没有目录系统的庞大图书馆里寻找一本特定的书,你可能会耗费无数个小时搜索,但最终却一无所获。 同理,企业的数据如果没有一个组织良好、易于搜索的系统,也无法充分发挥其潜力。企业数据目录能够简化这一…

Kafka 基础与架构理解

目录 前言 Kafka 基础概念 消息队列简介:Kafka 与传统消息队列(如 RabbitMQ、ActiveMQ)的对比 Kafka 的组件 Kafka 的工作原理:消息的生产、分发、消费流程 Kafka 系统架构 Kafka 的分布式架构设计 Leader-Follower 机制与…

进击J6:ResNeXt-50实战

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、实验目的: 阅读ResNeXt论文,了解作者的构建思路对比之前介绍的ResNet50V2、DenseNet算法使用ResNeXt-50算法完成猴痘病识别 二、实…