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

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》


http://www.kler.cn/a/561157.html

相关文章:

  • 一文讲解Redis中和本地缓存之间的一致性问题及区别等
  • Spring Boot:Java开发的神奇加速器(一)
  • JSON Web Token在登陆中的使用
  • Lua C API :使用 lua_tonumber 函数从 Lua 栈中提取数值
  • 首届国际文化科技与未来创新发展大会:蓝海彤翔CTO穆凯辉出席并签约
  • LeetCode 热题100 104. 二叉树的最大深度
  • 基于 Vue.js 和 Element UI 实现九宫格按钮拖拽排序功能 | 详细教程与代码实现
  • C++:dfs,bfs各两则
  • 【idea问题排查技巧】
  • 算法-数据结构-图-邻接表构建
  • 让Word插上AI的翅膀:如何把DeepSeek装进Word
  • Spring Boot集成Swagger API文档:傻瓜式零基础教程
  • AI写代码工具ScriptEcho:赋能数据分析,驱动精准营销
  • 大数据平台上的机器学习模型部署:从理论到实
  • 【计算机网络】传输层协议(UDP TCP)
  • 网络安全实入门| 剖析HTTP慢速攻击(Slowloris)与Nginx防护配置
  • Win11在docker环境安装homeassistant,安装HACS并集成小米官方组件
  • 【2】常用cmd命令大全、使用cmd运行和编译Java程序
  • MFC笔记:本专栏课件
  • 文件包含-session2