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

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

1 “敌人”汽车类的创建

在创建玩家汽车类之后,接下来创建“敌人”汽车类。“敌人”汽车类与玩家类一样,也是包含两个方法,一个是__init__(),另一个是move()。

1.1 __init__()方法

“敌人”汽车类的__init__()方法代码如图1所示。

图1 “敌人”汽车类的__init__()方法代码

其中,“敌人”汽车类名是Enemy,该类也是pygame.sprite.Sprite类的子类。在__init__()方法中,第37行代码调用了其父类也就是pygame.sprite.Sprite类的__init__()方法,完成精灵类的初始化;第38行代码导入“敌人”汽车的图片;第39行代码获取“敌人”汽车图片的位置及大小信息;第40行代码设置“敌人”汽车的初始位置,因为其初始位置在屏幕的最上方,所以其纵坐标的值是0,横坐标是一个随机值,可以保证“敌人”汽车出现的随机性,原理如图2所示。

图2 “敌人”汽车的初始位置原理图

其中,汽车图片宽度的一半是40,因此其中心位置的横坐标最小值是40,最大值是屏幕宽度-40。第40行代码中使用random.randint()函数生成从40到WIDTH-40之间的一个随机值作为汽车图片中心位置的横坐标。

注意1 需要导入random模块。

1.2 move()方法

“敌人”汽车类的move()方法用于控制“敌人”汽车的移动,代码如图3所示。

图3 “敌人”汽车类的move()方法代码

其中,第43行代码将变量SCORE声明为全局变量,SCORE表示玩家的分数,当玩家成功躲避了一辆敌人的汽车,则分数加1,该变量在“敌人”汽车类之外定义,因为要在类内对其进行修改,需要将其设置为global;第44行代码通过rect.move_ip()函数实现“敌人”汽车图片的移动,因为“敌人”汽车是从屏幕上方向下方移动,只需要在垂直方向移动图片,水平方向无需移动,SPEED表示“敌人”汽车的速度,在“敌人”汽车类之外定义;第45-48行代码的作用是当“敌人”汽车移动到屏幕下方之后的处理,当rect.bottom大于HEIGHT,表示“敌人”汽车移动到屏幕下方,此时表示玩家成功躲避了一辆敌人的汽车,第46行代码将玩家分数加1,第47-48行代码重新设置“敌人”汽车的位置,使其重新回到屏幕的上方,并随机设置其水平位置。

相关文章:

  • java23种设计模式-桥接模式
  • 【关于seisimic unix中使用suedit指令无法保存问题】
  • 网络 - Socket编程
  • Go 协程池完整解析(原理+实践+性能分析
  • 第二章-续:辅助功能
  • EX_25/2/22
  • 第5章 软件工程(二)
  • Crack SmartGit
  • vue3中Watch和WatchEffect的用法和区别
  • 调用DeepSeek API 增强版纯前端实现方案,支持文件上传和内容解析功能
  • sam2 windows 编译安装
  • springboot单机支持1w并发,需要做哪些优化
  • 国产编辑器EverEdit - 如何在EverEdit中创建工程?
  • 使用Uni-app实现语音视频聊天(Android、iOS)
  • 漏洞文字版表述一句话版本(漏洞危害以及修复建议),通常用于漏洞通报中简洁干练【持续更新中】
  • JavaWeb-在idea中配置Servlet项目
  • Linux下网络运维命令总结
  • Linux设备驱动开发-SPI驱动开发详解(包含设备树处理详细过程)
  • AR技术下的电商:虚拟试穿/试用/试戴成新风尚
  • Linux系统需要学习的内容和学习计划
  • 网站媒体作风建设年工作总结/高中同步测控优化设计答案
  • 网站上线如何做压力测试/网页设计html代码大全
  • 文件备案网站建设方案/一般的电脑培训班要多少钱
  • web网站建设遵循的原则/北京网站
  • 佛山顺德区疫情最新消息/seo推广小分享
  • 做外贸产品上什么网站/网站制作报价表