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

Pygame中Sprite的使用方法6-5

3 碰撞检测

蓝色方块会随着鼠标移动,当碰到绿色方块时,则当前分数加1,当碰到红色方块时,当前分数减1。因为要随时进行碰撞检测,因此需要在while True循环中实现以下功能。

3.1 蓝色方块随鼠标移动

将蓝色方块的位置设置为鼠标的位置,即可以实现蓝色方块随鼠标移动,代码如下所示。

pos = pygame.mouse.get_pos()
player.rect.x = pos[0]
player.rect.y = pos[1]

其中,通过pygame.mouse.get_pos()获取鼠标的当前位置,并将鼠标的横坐标pos[0]赋值给蓝色方块的x坐标player.rect.x,鼠标的纵坐标pos[1]赋值给蓝色方块的y坐标player.rect.y。

3.2 检测蓝色方块是否碰撞到绿色方块

3.2.1 pygame.sprite.spritecollide()方法

通过pygame.sprite.spritecollide()方法来实现碰撞检测。该方法的使用格式为

spritecollide(sprite, group, dokill, collided=None)

其中,第一个参数sprite表示碰撞的Sprite实例;第二个参数是一个Group实例,在该Group中包含了多个Sprite实例,也就是说,判断第一个参数sprite与第二个参数group中包含的多个Sprite实例是否进行了碰撞;dokill是一个布尔类型的参数,该参数是True时表示将发生碰撞的实例从第二个参数group中删除,False表示不删除;第四个餐宿collided是一个回调方法,当两个Sprite实例发生碰撞时,调用该方法,默认是None。spritecollide()方法的返回值是一个列表,包含了在第二个参数group中与第一个参数spirte发生碰撞的Sprite实例。

3.2.2 相关代码

通过pygame.sprite.spritecollide()方法来判断蓝色方块是否与绿色方块碰撞的代码如下所示。

blocks_hit_list = \pygame.sprite.spritecollide(player, block_list, True)for block in blocks_hit_list:score += 1print('当前分数为:'+str(score))

其中,player是表示鼠标的蓝色方块;block_list包含了所有绿色方块的Group实例,因为在碰撞发生后,被碰撞的绿色方块要消失,因此,把spritecollide()方法的第三个参数设置为True。发生碰撞的方块就保存在blocks_hit_list中,最后对分数score进行加1处理,并显示。

3.3 检测蓝色方块是否碰撞到红色方块

检测蓝色方块是否碰撞到红色方块的原理与碰撞绿色方块类似,代码如下所示。

blocks_hit_list = \pygame.sprite.spritecollide(player, block_bad_list, True)for block in blocks_hit_list:score -= 1print('当前分数为:'+str(score))

其中,block_bad_list是保存红色方块的group。当发生碰撞时,对分数score进行减1处理,并显示。

相关文章:

Pygame中Sprite的使用方法6-5

3 碰撞检测 蓝色方块会随着鼠标移动,当碰到绿色方块时,则当前分数加1,当碰到红色方块时,当前分数减1。因为要随时进行碰撞检测,因此需要在while True循环中实现以下功能。 3.1 蓝色方块随鼠标移动 将蓝色方块的位置…...

浅谈为什么多态只能是指针或引用

其实在很早之前,我一直没有注意到这个问题,直到今天碰见了一道题,顺便前面的博客中,继承写到,子类中不包含父类,子类只是继承了父类的成员变量和函数,由这一点,引发了我对切片以及赋…...

js看代码说输出

目录 原型 Function与Object new fn() 原型链 constructor function.length 默认参数:第一个具有默认值之前的参数个数 剩余参数:不算进length 闭包 循环中 函数工厂:形参传递 IIFE:匿名闭包 let:闭包 forEach()&am…...

Java笔记:使用javassist修改class文件内方法

1.前言 在工作突然有一个需求。线上运维的一个tomcat的web项目,运行的程序不正常。需要修改代码。可是这个项目代码非常的老,并且公司存储的源代码跟线上的不一致。 我了个擦,没有源代码但是还要结局客户的问题。只能到线上将对应程序的clas…...

华为云云耀云服务器L实例评测 |云服务器性能评测

通过上一篇文章华为云云耀云服务器 L 实例评测 |云服务器选购,我已经购买了一台 Centos 系统的云耀云服务器 L 实例。 在获得云耀云服务器 L 实例后,首要任务是熟悉云耀云服务器 L 实例的性能,对云耀云服务器 L 实例的性能进行测…...

iphone的safari浏览器实现全屏的pwa模式,并修改顶部状态栏背景颜色

要想修改顶部背景颜色&#xff0c;需要用到这个属性&#xff1a;content就是你要设置的颜色 <!-- 状态栏的背景色 --><meta name"theme-color" content"#f8f8f8" /> 然后再加上下面的设置&#xff1a; <!-- 网站开启对 web app 程序的支持…...

springboot对接rabbitmq并且实现动态创建队列和消费

背景 1、对接多个节点上的MQ&#xff08;如master-MQ&#xff0c;slave-MQ&#xff09;&#xff0c;若读者需要自己模拟出两个MQ&#xff0c;可以部署多个VM然后参考 docker 安装rabbitmq_Steven-Russell的博客-CSDN博客 2、队列名称不是固定的&#xff0c;需要接受外部参数&…...

Spring的后处理器-BeanFactoryPostprocessor

目录 Spring后处理器 Bean工厂后处理器-BeanFactoryPostProcessor 修改beanDefinition对象 添加beanDefiniton对象 方法一 方法二 自定义Component Spring后处理器 Spring后处理器是Spring对外开放的重要拓展点&#xff08;让我们可以用添加自己的逻辑&#xff09;&…...

Flutter 必备知识点

Flutter 升级 确保在项目根目录下&#xff08;含有 pubspec.yaml 的文件夹&#xff09; 在命令行中输入命令&#xff1a; flutter channel输出&#xff1a; Flutter channels: * mastermainbetastable这个可以在 pubspec.yaml 中查看&#xff1a; 切换分支也很简单&#xf…...

什么是FMEA(失效模式和影响分析)?

失效模式和影响分析&#xff08;FMEA&#xff09;是一个在开发阶段&#xff0c;用于确定产品或流程可能的风险和失败点的有条理的过程。FMEA团队会研究失效模式&#xff0c;也就是产品或流程中可能出错的地方&#xff0c;以及这些失效可能带来的影响&#xff08;如风险、损害、…...

Redis面试题(三)

文章目录 前言一、怎么理解 Redis 事务&#xff1f;二、Redis 事务相关的命令有哪几个&#xff1f;三、Redis key 的过期时间和永久有效分别怎么设置&#xff1f;四、Redis 如何做内存优化&#xff1f;五、Redis 回收进程如何工作的&#xff1f;六、 加锁机制总结 前言 怎么理…...

Python错误处理指南:优雅应对异常情况

目录 一. 异常是什么&#xff1f;二. 使用 try 和 except三. 捕获多个异常四. 使用 else五. 使用 finally六. 自定义异常七.Python中常见异常处理类型八.Python中常见异常处理实例九.异常处理最佳实践十.结论 当编写Python代码时&#xff0c;错误处理是一个重要的方面&#xff…...

MySQL学习笔记12

MySQL 查询语句&#xff1a; 1、查询五子句&#xff1a;&#xff08;重点&#xff09; mysql> select */字段列表 from 数据表名称 where 子句 group by 子句 having 子句 order by 子句 limit 子句; 1&#xff09;where 子句&#xff1b;条件筛选。 2&#xff09;group…...

【owt】构建m79的owt-client-native:使用vs2017

家里电脑换成了台式机,拷贝代码发现了三年前的owt客户端mfc工程。 不用下载第三方库,试着构建下: owt-client-native 我这里有3年前的代码,思索了下还是用vs2017构建吧: 重新构建一下 选用x86 的 vs2017 vs的命令行控制台 cls可以清理屏幕 之前构建过vs2022的webrtc原版 …...

Cpp/Qt-day020918Qt

目录 完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两…...

Spring面试题10:Spring的XMLBeanFactory怎么使用

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring的XMLBeanFactory怎么使用 XmlBeanFactory是Spring框架中的一个实现类,它是BeanFactory接口的一个具体实现。XmlBeanFactory的主要作用是通…...

自定义数据类型

前言&#xff1a;小伙伴们又见面啦&#xff0c;今天这篇文章&#xff0c;我们来谈谈几种自定义数据类型。 目录 一.都有哪些自定义数据类型 二.结构体 结构体内存对齐 1.如何对齐 2.为什么要对齐 3.节省空间和提升效率的方法 &#xff08;1&#xff09;让占用空间小的成员…...

产品团队的需求验证和确认

需求核实过程是确保软件满足特定的规格要求&#xff0c;而验证则侧重于软件是否达到了最终用户的期望和需求。 如果你正在开发一种医疗产品&#xff0c;这种区别也可能在法规和标准中有所体现&#xff0c;例如&#xff1a; 820.30(f)&#xff1a;设计验证应确认设计的成果符合…...

【JVM】类加载的过程

文章目录 类的生命周期加载验证准备解析初始化简要概括 类的生命周期 一个类型从被加载到虚拟机内存中开始&#xff0c;到卸载出内存为止&#xff0c;它的整个生命周期将会经历加载 &#xff08;Loading&#xff09;、验证&#xff08;Verification&#xff09;、准备&#xf…...

Golang 结构化日志包 log/slog 详解(四):分组、上下文和属性值类型

上一篇文章讲解了 log/slog 包中的自定义日志属性字段和日志级别&#xff0c;本文讲解下分组、上下文和属性值类型 分组输出 slog 支持将字段放在组中并且可以给分组指定名称。如何展示分组的内容&#xff0c;取决于使用的 handler&#xff0c;例如 TextHandler 使用点号分隔…...

别死记硬背!用‘丢失’和‘保留’的视角,5分钟搞懂线性代数里的秩-零化度定理

别死记硬背&#xff01;用‘丢失’和‘保留’的视角&#xff0c;5分钟搞懂线性代数里的秩-零化度定理 线性代数里那些抽象的概念和公式&#xff0c;是不是总让你头疼不已&#xff1f;尤其是那个看起来莫名其妙的秩-零化度定理&#xff1a;dim(ker T) dim(im T) dim(V)。别担心…...

MongoDB EF Core 提供程序中的可查询加密和向量搜索

ngoDB Entity Framework (EF) Core 提供程序自 2024 年 5 月起正式发布。自发布以来&#xff0c;我们欣喜地看到 .NET 开发人员社区给予了积极的反馈&#xff0c;并且该提供程序在各种应用程序中得到了越来越广泛的采用。 该提供商使开发人员能够利用 LINQ 查询、更改跟踪和乐…...

RN 0.63 双端冷启动线程流转

RN 0.63 旧架构下&#xff0c;Android 和 iOS 的冷启动都经历了相同的思路&#xff1a;主线程入口 → 后台线程做重活&#xff08;创建引擎、加载 Bundle&#xff09;→ JS Thread 接管 → Shadow 计算布局 → 主线程渲染首帧。两端实现细节不同&#xff0c;但线程模型一致。一…...

3步打造零成本游戏手柄解决方案 - 用Joy-Con模拟Xbox控制器的高效实践

3步打造零成本游戏手柄解决方案 - 用Joy-Con模拟Xbox控制器的高效实践 【免费下载链接】XJoy 项目地址: https://gitcode.com/gh_mirrors/xjo/XJoy 场景化问题&#xff1a;当你的游戏缺少合适手柄时 你是否遇到过这种情况&#xff1a;想在PC上畅玩3A大作&#xff0c;却…...

373. Java IO API - 文件存储属性

文章目录373. Java IO API - 文件存储属性&#x1f4cf; 示例&#xff1a;检查文件存储的空间使用情况⚙️ 解释&#x1f50d; 确定 MIME 类型&#x1f4c2; 示例&#xff1a;获取文件 MIME 类型⚠️ 重要注意事项&#x1f6e0;️ 示例&#xff1a;自定义文件类型探测器&#x…...

BANG C语言在DLP平台上的矩阵乘法优化:从标量到五级流水线的性能跃迁

1. 矩阵乘法优化的核心挑战 矩阵乘法是深度学习中最基础也最耗时的操作之一。在DLP平台上&#xff0c;一个128x256x128规模的矩阵乘法&#xff0c;如果用最基础的标量实现方式&#xff0c;性能往往只有CPU的1/10。这就像用自行车和跑车比赛&#xff0c;完全不在一个量级。 为什…...

告别VOC数据集:手把手教你用BDD100K训练PyTorch版MobileNetV3-SSD(含数据转换脚本)

从BDD100K到实战&#xff1a;轻量级目标检测模型MobileNetV3-SSD的完整训练指南 在计算机视觉领域&#xff0c;目标检测一直是工业界和学术界关注的焦点。随着边缘计算和移动设备的普及&#xff0c;如何在资源受限的环境中部署高效的目标检测模型成为开发者面临的新挑战。本文将…...

Qwen3-14B Python数据分析环境配置:Anaconda与PyCharm集成

Qwen3-14B Python数据分析环境配置&#xff1a;Anaconda与PyCharm集成 1. 为什么需要专业的数据分析环境 在开始使用Qwen3-14B进行数据分析和AI应用开发前&#xff0c;搭建一个稳定、隔离的Python环境至关重要。想象一下&#xff0c;你正在装修房子&#xff0c;Anaconda就是你…...

千问3.5-2B参数详解:max_new_tokens=192如何平衡响应长度与推理延迟?实测数据

千问3.5-2B参数详解&#xff1a;max_new_tokens192如何平衡响应长度与推理延迟&#xff1f;实测数据 1. 模型概述 千问3.5-2B是Qwen系列中的小型视觉语言模型&#xff0c;具备图片理解与文本生成双重能力。这个2B参数的轻量级模型特别适合需要快速响应的应用场景&#xff0c;…...

Qwen-Image-2512-Pixel-Art-LoRA 持续集成:使用GitHub Actions自动化测试模型部署更新

Qwen-Image-2512-Pixel-Art-LoRA 持续集成&#xff1a;使用GitHub Actions自动化测试模型部署更新 最近在折腾一个像素艺术风格的AI图像生成项目&#xff0c;核心是那个Qwen-Image-2512-Pixel-Art-LoRA模型。每次更新模型权重或者调整一下推理服务的配置&#xff0c;都得手动重…...