Python游戏编程之赛车游戏6-5

news/2025/2/25 18:57:43

1 碰撞检测

在显示了玩家汽车和“敌人”汽车之后,接下来就要实现玩家与“敌人”的碰撞检测了。

代码如图1所示。

图1 碰撞检测代码

第72行代码通过pygame.sprite.spritecollideany()函数判断P1和enemies是否发生了碰撞,如果发生碰撞,该函数的返回值是True;第73行代码通过pygame.mixer.Sound()函数导入音频文件“crash.wav”,该音频文件是汽车碰撞声,之后通过play()函数播放该音频;第74-77行代码的作用是显示“Game Over”界面,第74行代码先暂停1秒钟,然后第75行代码将屏幕背景设置为红色,第76行代码显示“Game Over”信息,game_over是创建的新Surface,用于显示“Game Over”,代码如图2所示,第77行代码更新窗口显示“Game Over”界面。

图2 创建“Game Over”新Surface的代码

图1第78-79行代码通过for循环遍历all_sprites精灵组中的所有精灵,并通过kill()函数删除这些精灵。第80-82行代码退出pygame和游戏。

相关链接1  pygame.sprite.spritecollideany()函数实现碰撞检测的资料,请参考

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

相关链接2  pygame.mixer模块播放音频的资料,请参考

《Pygame中播放音频的方法》

2 设置游戏帧数

可以通过设置游戏帧数来调整“敌人”汽车的速度。

2.1 定义游戏帧数

定义游戏帧数,并且创建pygame.time.Clock类的实例,代码如图3所示。

图3 定义游戏帧数及创建pygame.time.Clock类的实例的代码

其中,变量FPS即为游戏帧数,可以通过修改该变量的值来调整“敌人”汽车的速度;FramePerSec是pygame.time.Clock类的实例。

2.2 设置游戏帧数

设置游戏帧数的代码如图4所示。

图4 设置游戏帧数的代码

注意1 图3所示代码在while True循环之外,图4所示设置游戏帧数的代码在while True循环之内。

相关链接3 游戏帧数的相关资料,请参考

《Pygame中Sprite类的使用6-2》


http://www.niftyadmin.cn/n/5865857.html

相关文章

菜鸟之路Day18一一IO流综合练习

菜鸟之路Day18一一IO流综合练习 作者:blue 时间:2025.2.21 文章目录 菜鸟之路Day18一一IO流综合练习0.概述1.生成假数据(网页爬虫)2.随机点名器2.1随机点名器12.2随机点名器22.3随机点名器32.4随机点名器42.5随机点名器5&#x…

npm i 失败权限问题

安装完node之后, 测试全局安装一个最常用的 express 模块进行测试 失败,但是用管理员权限打开cmd 安装就成功。 报错如下: npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and …

华为2025年技术发布会:智能汽车核心技术大爆发

近日,华为在鸿蒙智行尊界技术发布会上发布了多项智能汽车核心技术,涵盖智能驾驶、安全防护、通信系统、座舱交互及电池技术等领域,标志着其从“被动智能”向“自主智能”的战略升级。 以下是核心技术的综合梳理: 六大核心创新 途…

9-1. MySQL 性能分析工具的使用——last_query_cost,慢查询日志

9-1. MySQL 性能分析工具的使用——last_query_cost,慢查询日志 文章目录 9-1. MySQL 性能分析工具的使用——last_query_cost,慢查询日志1. 数据库服务器的优化步骤2. 查看系统性能参数3. 统计SQL的查询成本:last_query_cost4. 定位执行慢的…

GO 快速升级Go版本

由于底层依赖升级了,那我们也要跟着升,go老版本已经不足满足需求了,必须要将版本升级到1.22.0以上 查看当前Go版本 命令查看go版本 go version [rootlocalhost local]# go version go version go1.21.4 linux/amd64 [rootlocalhost local]# …

hackmyvm-buster

题目地址 信息收集 主机发现 ┌──(root㉿kali)-[/home/kali] └─# arp-scan -I eth1 192.168.56.0/24 Interface: eth1, type: EN10MB, MAC: 00:0c:29:34:da:f5, IPv4: 192.168.56.103 WARNING: Cannot open MAC/Vendor file ieee-oui.txt: Permission denied WARNING: C…

GEO数据结构

目录 1. GEOADD 2. GEODIST 3. GEOHASH 3. GEOHASH 4. GEOPOS 6. GEOSEARCH 7. GEOSEARCHSTORE 应用场景 代码的逻辑分解: 比较难懂的部分: Redis GEO 查询与分页 results 的结构: 分页处理与截取数据 附加距离信息 1. GEOADD…

基于 IMX6ULL 的环境监测自主调控系统

文章目录 前言一、项目介绍二、前台QT界面1. 界面设计2. 代码示例 三、后台硬件驱动四、JsonRPC 实现前后台分离1. 为什么要拆分?2. 如何拆分? 五、总结 前言 项目完整代码:基于 IMX6ULL 的环境监测自主调控系统完整代码 该项目的源代码适用…