美文网首页python入门
050_wz_hm_项目实战——飞机大战之精灵与精灵组

050_wz_hm_项目实战——飞机大战之精灵与精灵组

作者: 王泽0106 | 来源:发表于2020-08-22 20:47 被阅读0次

精灵与精灵组

在刚刚完成的案例中,图像加载、位置变化、绘制图像都需要程序员编写代码分别处理,为了简化开发步骤,pygame提供了两个类:

  • ·pygame.sprite.Sprite`——存储图像数据image和位置rect的对象
  • pygame.sprite.Group
    注:sprite是精灵的意思,group是组、群的意思 精灵与精灵组

派生精灵子类

  1. 新建plane_sprites.py文件
  2. 定义GameSprite继承自pygame.sprite.Sprite
    注意:
    如果一个类的父类不是object,在重写初始化方法是,一定要先super()一下父类的__init__方法,保证父类中实现的__init__代码能够被正常执行 派生精灵子类

属性:

  • image精灵图像,使用image_name加载
  • rect精灵大小,默认使用图像大小
  • speed精灵移动速度,默认为1

方法:
update每次更新屏幕时在游戏循环内调用,让精灵的self.rect.y += self.speed

提示:imageget_rect()方法,可以返回pygame.Rect(0, 0, 图像宽, 图像高)的对象

plane_sprites

使用游戏精灵和精灵组创建敌机

需求:使用刚刚派生的游戏精灵和精灵组创建敌机并且实现敌机动画效果

步骤:

  1. 使用from导入plane_sprites模块
  • from导入的模块可以直接使用
  • import导入的模块需要通过模块名.来使用
  1. 在游戏初始化创建精灵对象精灵组对象
  2. 在游戏循环中让精灵组分别调用update()draw(screen)方法

职责:
精灵:封装图像image、位置rect和速度speed,提供update()方法,根据游戏需求更新位置rect
精灵组:包含多个精灵对象,让所有精灵调用update()方法更新位置,使用draw(screen)方法在screen上绘制精灵组中所有精灵

绘制敌机1 绘制敌机2 2020.8.22

相关文章

  • 050_wz_hm_项目实战——飞机大战之精灵与精灵组

    精灵与精灵组 在刚刚完成的案例中,图像加载、位置变化、绘制图像都需要程序员编写代码分别处理,为了简化开发步骤,py...

  • Python打飞机(飞机大战)

    敌机和主机 发子弹 连发子弹 飞机大战(加音乐代码) 飞机大战代码: 精灵组 飞机大战敌机 飞机大战背景 上下左右...

  • 飞机大战-框架搭建

    目标 —— 使用 面相对象 设计 飞机大战游戏类 目标 明确主程序职责 实现主程序类 准备游戏精灵组 01. 明确...

  • 飞机大战(项目实战)

    学习编程是一件很枯燥的事情,我们今天就来聊聊代码中比较有意思的地方———项目实战(飞机大战) 首先要想要在Py...

  • Python:飞机大战游戏3:框架搭建

    一、总体目录 明确主程序的指责 实现飞机大战主程序类 准备游戏精灵组 二、明确主程序的指责 2.1、一个主程序的 ...

  • 断奶第一天

    我们讲了奶精灵的故事,妈妈叠了纸飞机,画了奶精灵(有些粗糙),今天奶精灵就要坐着这架飞机飞走了,我们跟它说拜拜……...

  • python飞机大战6 精灵动画

    动画流星 我们所有的流星都看起来完全一样,看起来不是很令人兴奋: 我们怎样才能为流星添加更多变化和视觉吸引力呢?一...

  • python飞机大战2 敌人精灵

    敌人精灵 在这一点上,我们不需要担心我们的敌人精灵是什么,我们只是想让他们在屏幕上。你可能会认为你的游戏是关于躲避...

  • 飞机大战(项目实战2)

    今天详细的讲一下英雄的出场 和位置,我们先定义需求: 1:游戏启动后,英雄出现在屏幕的中间位置,距离屏幕底部120...

  • Pygame精灵和精灵组

    Pygame精灵和精灵组 Pygame提供了两个类 pygame.sprite.Sprite—— 存储图像数据 i...

网友评论

    本文标题:050_wz_hm_项目实战——飞机大战之精灵与精灵组

    本文链接:https://www.haomeiwen.com/subject/igipjktx.html