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

飞翔的小鸟精灵组

# # Pygame模板 -(上) 绘制背景,精灵的使用(静止的小鸟),小鸟下落,小鸟响应空格键上升,小鸟的动画效果 # -(中)定义管道精灵类 ,并使用精灵组,管道从右往左移动一次 # - (中) 管道移到左边后会重新出现在右侧随机位置 import pygame import random # 定义一个派生精灵子类-小鸟精灵类 class Bird(pygame.sprite.Sprite): # 构造函数(对象初始化方法) def __init__(self): pygame.sprite.Sprite.__init__(self) # 先调用父类的初始化方法 self.images = [] # 导入所有的小鸟图像(用于动画效果) for i in range(8): img = pygame.image.load("d:/test/bird%d.png"%i) self.images.append(img) self.frame = 0 # 当前显示的图像的编号 #self.image = pygame.image.load("d:/test/bird0.png") # 导入小鸟图像 self.image = self.images[self.frame] # 设置小鸟的图像属性值(当前图像) self.rect = self.image.get_rect() # 设置矩形属性(当前位置) self.rect.x = 50 self.rect.y = 260 self.speed = 2 # 初始化每次下落的距离(速度) # 重写update方法控制精灵行为 def update(self): self.rect.y += self.speed # 将增加的距离累加至小鸟的y坐标中 self.speed = 2 # 重置每次下落的距离 # 实现飞翔动画效果 self.frame += 1 # 当前图像编号加1(即换成下一张) if self.frame > 7: self.frame = 0 self.image = self.images[self.frame] # 根据编号更新当前图像 # 定义一个派生精灵子类-管道精灵类 class Pipe(pygame.sprite.Sprite): # 构造函数(对象初始化方法) def __init__(self, image, x, y): # image-管道图像Surface对象,x, y-左上角坐标 pygame.sprite.Sprite.__init__(self) self.image = image self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y # 重写update方法控制精灵行为 def update(self): self.rect.x -= 2 # 向左水平移动 # 窗口宽度和高度 WIDTH = 350 HEIGHT = 600 HALF_GATE_HEIGHT = 120 # 管道开口高度的一半 TUNNEL_HEIGHT=370 # 管道图片高度 # 初始化和窗口设置 pygame.init() #启动pygame并初始化 screen = pygame.display.set_mode((WIDTH, HEIGHT)) # 创建一个游戏窗口 pygame.display.set_caption("飞翔的小鸟") # 设置标题 #创建一个时钟Clock对象,以便我们能够确保我们的游戏以我们想要的 FPS 运行 clock = pygame.time.Clock() bg = pygame.image.load("d:/test/background.jpg") # 背景图片导入并缩放为窗口大小 bg = pygame.transform.smoothscale(bg, (WIDTH, HEIGHT)) bird = Bird() # 创建一个小鸟对象 #创建精灵组对象 pipes = pygame.sprite.Group() #导入图像 pipe_down_image = pygame.image.load("d:/test/bar_down.png") # 导入口冲下的管道 pipe_up_image = pygame.image.load("d:/test/bar_up.png") # 导入口冲上的管道 #创建上下管道精灵,并把他们加入精灵组 y = random.randint(180, 420) pipe_down = Pipe(pipe_down_image, WIDTH, y+HALF_GATE_HEIGHT) pipe_up = Pipe(pipe_up_image, WIDTH, y-TUNNEL_HEIGHT-HALF_GATE_HEIGHT) pipes.add(pipe_up, pipe_down) # 游戏主循环 running = True while running: # 无限循环,直到python退出时结束 # 设置每秒循环被执行的次数 clock.tick(50) # 处理输入(键盘、鼠标事件...) for event in pygame.event.get(): if event.type == pygame.QUIT: # 处理关闭窗口事件 running = False # 将 running 设置为 False,游戏主循环结束 if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE: bird.speed = -30 # 小鸟需要向上移动(将下落距离设为负值) # 渲染到屏幕(绘制) # 绘制背景 screen.blit(bg, (0, 0)) # 绘制小鸟 bird.update() screen.blit(bird.image, bird.rect) # 创建上下管道精灵,并把他们加入精灵组 if len(pipes) == 0: y = random.randint(180, 420) pipe_down = Pipe(pipe_down_image, WIDTH, y+HALF_GATE_HEIGHT) pipe_up = Pipe(pipe_up_image, WIDTH, y-TUNNEL_HEIGHT-HALF_GATE_HEIGHT) pipes.add(pipe_up, pipe_down) # 绘制管道 pipes.update() pipes.draw(screen) # 将精灵组显示在画布中 # 管道移出窗口范围时清空精灵组 if pipe_up.rect.right < 0: pipes.empty() # 更新显示状态 pygame.display.update() #销毁窗口 pygame.quit()
http://www.jsqmd.com/news/880762/

相关文章:

  • 14.解决 99% 刷机故障!从底层原理到脚本实操,杜绝 IMEI / 基带永久损坏
  • 麒麟服务器等保三级配置实战:从SSH双因子到kysec策略落地
  • CAXA 查找替换
  • 四川螺纹钢最新市场价 建材行情动态拿货报价找盛世钢联 - 四川盛世钢联营销中心
  • AI与精益创业结合驱动产品创新的方法论
  • 差分隐私生成模型实战:从理论保障到隐私攻击与审计评估
  • 2026最新免费图片去水印保姆级教程!这5种方法一次学会,第三种零门槛秒出图
  • 15.纯手写无封装!ADB/Fastboot 底层命令封装,刷机维修神器源码
  • CAXA 引出说明
  • 四川钢管最新市场价 管材行情动态拿货报价找盛世钢联 - 四川盛世钢联营销中心
  • 002-AI客服-RAG优化分析
  • 物理生物学研究报告【20260015】
  • ARM SME架构向量点积指令SVDOT与UDOT深度解析
  • 5秒音频也能玩转AI?手把手教你用ESC-50数据集入门环境声音分类
  • 如何将上传至PyPI
  • 别再骂Windows Defender了!手把手教你优化MsMpEng.exe,让游戏/编译不再卡顿
  • 16.高通 9008 深度救砖实战!EDL 协议解析 + Python 刷机源码直接运行
  • 从0到10万粉:用ChatGPT批量生成B站选题、脚本、标题、简介、弹幕预埋——完整工作流拆解,含5大防限流校验节点
  • CAXA 基准代号
  • 多模态模型在昇腾上的部署架构
  • Transformer注意力机制优化2026:Flash Attention到MLA的工程进化
  • 2026年至今,西安地区高适配机械弹簧供应商深度解析:为何“兵华弹簧制造”备受青睐? - 2026年企业推荐榜
  • 2026年江苏井下清仓机器人直销厂家的选择逻辑与价值剖析 - 2026年企业推荐榜
  • Taotoken 用量看板与账单追溯功能的实际使用感受
  • AI Agent测试工程:如何系统验证智能体的行为正确性
  • 别再死记硬背了!用Python+PyTorch手把手复现感知机到LSTM,帮你把深度学习笔记变活
  • 【万字文档+源码】基于SpringBoot+Vue高校实验室预约系统-计算机专业项目设计分享
  • 2026年Q2浙江防水堵漏怎么选:嘉善防水补漏公司/桐乡防水补漏公司/海宁防水补漏公司/海盐防水补漏公司/防水补漏工程/选择指南 - 优质品牌商家
  • 2026抖店转让优质平台推荐指南:天猫店铺转让的正规平台、抖店转让平台哪家口碑最好、正规的跨境网店转让平台、淘宝店铺转让平台有哪些选择指南 - 优质品牌商家
  • 一键生成AI影视解说,这个开源工具让我每周多产出10倍内容