【python】day08-09 pygame之泡泡堂游戏【综合性最强】(因为没有详细分析过代码,所以不会直接,也不会分享私发)

这个项目教之前六个是比较大的,今天开始的主要任务是跟着老师学Flask框架,泡泡堂的任务只每天做一点。因为我想按顺序排知识点,所以先发篇文章占着这个知识点的位置。

1.项目介绍

1.1编写目标

1.搭建项目
    1.1 搭建窗口尺寸 925,700
2.绘制背景图
    2.1 新建类SetImage(加载本游戏各种图片)
    2.2 第一区域 设置属性 self.setImg
    2.3 SetImage中 加载背景图片 zhan2.jpg
    2.4 第四区域  4.1 paintBack() 绘制背景图
3.绘制地板图
    3.1 SetImage中设置地板图 floorImgs
    3.2 第一区域 设置属性  self.floorMap
    3.3 第四区域 4.2 paintFloor() 绘制地板图
4.绘制建筑物图
    4.1 SetImage中设置建筑物图 self.builderImgs
    4.2 第一区域 设置属性  self.builderMap
    4.3 第四区域  绘制建筑物图  4.3  paintBuilder()
    树   0
    红色模块 1
    橙色模块 2
    红房子   3
    黄房子   4
    蓝房子   5
    箱子     6
    空白     7
5.宝宝对象
    5.1 新建NexonObject对象 提供4个公共属性 以及1个公共函数
    5.2 新建Bao对象 对父类的属性进行赋值以及调用
    5.3 第一区域 self.bao对象实例化
    5.4 第四区域 绘制宝宝图片
    5.5 第三区域 键盘监听判断 wasd
    5.6 第三区域  设置宝宝移动函数  stepBao()
    5.7 stepBao中修改方向 修改图片
    5.8 stepBao中判断是否出界
6.泡泡对象
    6.1 新建pao对象 继承NexonObject
    6.2 第一区域 init函数新建属性  self.paos = []
    6.3 第三区域 鼠标按键j 添加泡泡对象到self.paos中
    6.4 第四区域 4.5 paintPao() 循环遍历泡泡对象
    6.5 Pao中添加step函数  帧动画效果
    6.6 第三区域 调用stepAction函数 动起来的代码
    6.7 Pao中step函数修改生命值
    6.8 第三区域 stepAction中根据生命值判断泡泡是否死亡
7.生成炸弹
    7.1 新建bomb炸弹 继承NexonObject
    7.2 第一区域  init函数添加  self.bombs = []
    7.3 第四区域  paint函数添加  self.paintBomb()
    7.4 第三区域  stepAction中调用createBomb()函数
    7.5 第三区域  createBomb函数
    7.6 第三区域 judgeBomb()
            1.炸弹不能出界
            2.生成的炸弹 建筑类型分类 可炸和不可炸
                不可炸类型 0,3,4,5
                可炸类型   1,2,6,7
    7.7 Bomb中设置life 设置step函数
    7.8 第三区域 stepAction中 循环遍历所有的bomb 调用step函数
    7.9 第三区域 stepAction中 建筑物消失
8.销毁对象
    8.1 新建销毁对象 destroy 继承NexonObject
        screen,images,bRow,bCol
    8.2 第一区域  设置属性  self.destroys = []
    8.3 第三区域 stepAction 炸弹动画效果中 炸弹消失 创建销毁对象
    8.4 第四区域 paintDestroy() 绘制销毁对象
    8.5 destroy类中 新建属性life = 40
        新建step函数(0-10 第一张图  11-20第二张图 20-30 第三张图 30-40第四图)
    8.6 第三区域 stepAction循环遍历 destroy.step()
    8.7 第三区域判断 销毁对象的生命值是否小于 0  删除销毁对象
9.道具对象
    9.1 新建prop类  继承NexonObject
        self.type = random.randint(0,2)
        0 药水 泡泡威力
        1 蓝色泡泡  放置泡泡的数量
        2 旱冰鞋
    9.2 第一区域 init函数中  self.props = []
    9.3 第三区域 stepAction的销毁对象动画中  销毁对象删除之前生成道具
    9.4 第四区域 paintProp 绘制道具对象
    9.5 Bao类中 新增三个属性值
        self.power = 1  泡泡威力
        self.number = 1 放置的数量
        self.speed = 1  速度
    9.6 第三区域  coincide 捡取道具 重合之后 宝宝中的属性值增加
    9.7 道具使用
        1.泡泡的使用  self.number
            1.1 键盘监听中 添加self.bao.number的判断
            1.2 键盘监听中 减少self.bao.number的值
            1.3 第三区域 stepAction泡泡的动画效果中  增加self.number的值
        2.药水的使用
            2.1 createBomb中根据self.bao.power
            2.2 pao的类中新增4个属性值 UP,DOWN,LEFT,RIGHT
            2.3 createBomb中判断是否具有延展性
10.其他功能
    10.1 宝宝和泡泡不能够移动
    10.2 欢迎界面和状态值
        self.state = 0,1,2 0欢迎界面  1游戏界面
    10.3 宝宝死亡状态

11.海海的所有动作
    11.1 海海的操作
        pygame.K_LEFT
        pygame.K_RIGHT
        pygame.K_UP
        pygame.K_DOWN
    11.2 公用的列表
        self.paos = []
        self.bombs = []
        self.destroys= []
        self.props = []
        self.state = 0
    11.3 新建Hai类 属性值跟宝宝一样

1.2个人视角

本项目就是一个主函数+n个对象,另外将相同的部分(如图片)存储于同一py文件中,通过导包的方式引用。

对象包括,宝宝,海海,炸药等等。

2.项目编写

2.1编写思路

2.2编写过程

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值