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

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

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》

相关文章:

  • ESP32学习笔记_Bluetooth(3)——GATT
  • 计算机毕业设计SpringBoot+Vue.js足球青训俱乐部管理系统(源码+文档+PPT+讲解)
  • vue从入门到精通(十三):收集表单数据
  • [前端开发]vue-devtools6.5.0及历史版本下载
  • 【大模型系列篇】如何解决DeepSeek-R1结构化输出问题,使用PydanticAl和DeepSeek构建结构化Agent
  • 【够用就好006】-PC桌面管理ECS服务器的实操步骤
  • 20250212:https通信
  • 网络基础I
  • Python游戏编程之赛车游戏6-4
  • **模式的好处 (设计模式)
  • ArcGIS Pro中创建最低成本路径的详尽教程
  • 科普:HTTP端口80和HTTPS端口443
  • 浅谈 Redis 主从集群原理(一)
  • Figure自研模型Helix发布,人形机器人迈向新纪元?
  • 《一起打怪兽吧》——自制一款Python小游戏
  • 一文讲解Redis中的数据一致性问题
  • Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机
  • Qt在Linux嵌入式开发过程中复杂界面滑动时卡顿掉帧问题分析及解决方案
  • 策略模式介绍和代码示例
  • Megatron-LM:使用模型并行训练数十亿参数的语言模型
  • 缤纷网站免费做服装/小程序开发工具
  • 免费制作一个自己的网站吗/推广竞价
  • 有哪些做的好的小众网站/怎么卸载windows优化大师
  • 消防微型建设标准的网站是多少/千锋教育的真实性
  • 网站banner代码/如何在google上免费推广
  • 做设计网站的工作内容/淄博网络推广公司哪家好