• pygame实现飞机大战游戏


    标题:pygame实现飞机大战游戏

    源码链接:添加链接描述

    一、具体演示

    1.怪兽分为小怪,和大怪;大怪可以发射子弹
    2.英雄飞机共有10个生命值
    3.英雄飞机可以上下左右移动
    4.显示了英雄生命值,消灭怪兽数量,
    5.提供了供应包,可以改变英雄飞机发射的子弹

    在这里插入图片描述在这里插入图片描述

    二、项目概述

    hm_01_pygame_base05.py
    hm_01_pygame_base06.py,飞机大战【非面向对象的飞机大战,作为一个熟悉,热身】
    message.py ,message2.py,是在pygame屏幕上输出一句话【作为一个熟悉,热身】
    plane_main2.py,plane_sprites.py,是【正式】的飞机大战项目

    使用python实现飞机大战游戏,适合python基础入门,同时在一般的飞机大战基础上,新增了很多功能
    三、项目具体细节

    1.背景,飞机 【完成】
    2.敌机,多个 —定时器+事件监听,销毁【完成】
    3.飞机子弹 【完成】

    【具体实现操作】
    【分析:】飞机,敌机等等,都是最后画出来的,所以重点是什么时机添加进去,
    子弹- -每隔0.5s监听到事件,添加子弹到精灵组中==》画出子弹了,

    【操作】在init中创建精灵组,监听中,添加进去。
    每隔 Xs,根据飞机的位置,发射一次,
    但是,没有绑定飞机:
    eg:多个大怪出现的时候,每个大怪就需要有不同的精灵组
    solution:在hero类中,创建子弹精灵组,main中画出来,fire负责将子弹加入精灵组中

    4.飞机移动 – 设置边界【完成】
    5.飞机喷火 【完成】
    6.碰撞效果
    子弹–敌机 【完成】
    hero–敌机

    6.1子弹–敌机:
    敌机爆炸:把爆炸精灵组画出来,监听到爆炸,就将爆炸类加入精灵组中

    6.2hero–敌机 :
    所以应该是,先清屏,然后打印“游戏结束“,再等待按键—调用此方法
    self.__game_over()
    【solution】 设置一个游戏结束的标志,以便实现按键结束
    敌机,子弹,都是事件监听中【每隔Xs】出现的,所以,设置此标志后,就不会出现了
    self.gameover_flag = False

    7.怎么在屏幕上打印一句话 查找字体 C:\WINDOWS\Fonts\ARIALN.TTF
    ==实现生命值,消灭怪兽数量

    8.大怪2 3
    大怪–发子弹,
    【注意相对速度:大怪,子弹、背景都在运动】
    要是速度没有选好—可能出现后退的情形
    可以设置每颗子弹出现的时间

    9.大怪爆炸
    英雄,碰子弹—true,子弹消失;
    英雄+效果

    10炸弹供应
    原来子弹,供应子弹—都是event中监听
    设置一个flag,判断是原来的,还是供应的,【supply碰撞了,就设置为供应的】
    在游戏循环中—时间,使用变量,估计供应结束的时间,
    若结束,恢复标志

    11.大怪3 【待续】

  • 相关阅读:
    13、用户web层服务(一)
    Unity加速编译小技巧
    第十二章 Spring Cloud Config 统一配置中心详解-介绍及环境准备
    计算机网络面试大总结
    PostgreSQL 导出数据为CSV
    2022年度高中级职称申报材料组卷相关表格及组卷要求的通知
    【数据结构】——排序算法的相关习题
    CentOS系统如何做爬虫
    什么是终端特权管理
    微服务架构 | 超时管理
  • 原文地址:https://blog.csdn.net/weixin_45986454/article/details/125918066