Python 飞机大战

Python 飞机大战

用python做飞机大战游戏,主要引用pygame库,全程使用面向对象的思想,把
具有相同属性的东西归为一个类,我总共创建了七个类,分别是:

  • 玩家飞机精灵类(继承了pygame的精灵类)
  • 敌机精灵类(继承了pygame的精灵类)
  • 玩家子弹类(继承了pygame的精灵类)
  • 敌机子弹类(继承了pygame的精灵类)
  • 游戏音乐
  • 背景图类
  • 管理类

源码可以去githup上下载,地址 : GitHup 点击下载飞机大战

部分代码显示:比如玩家飞机精灵类


# 玩家飞机精灵类
class HeroPlane(pygame.sprite.Sprite):
    def __init__(self, screen):
        # 调用父类初始化方法
        # pygame.sprite.Sprite.__init__(self)
        super().__init__()
        # 窗口
        self.screen = screen
        # 一个玩家飞机图片
        self.image = pygame.image.load('./feiji/hero2.png')
        # 飞机矩形区域对象
        self.rect = self.image.get_rect()
        # 左上角坐标
        self.rect.topleft = [512 / 2 - 116 / 2, 600]
        # 飞机的速度
        self.speed = 15
        # 一个精灵组 存放所有的子弹精灵
        self.bullets = pygame.sprite.Group()
        # 血量 初始100
        self.blood_value = 100

        # 标记玩家飞机是否over
        self.is_remove = False

        # 显示爆炸图片的 索引 从0开始
        self.mIndex = 0

        # 存放爆炸图片 的列表
        self.bomb_mImages = []

敌机子弹类 :

# 敌机子弹类
class EnemyBullet(pygame.sprite.Sprite):
    # path_num表示散弹中 子弹是哪一个
    def __init__(self, screen, x, y):
        # 调用父类初始化方法
        # pygame.sprite.Sprite.__init__(self)
        super().__init__()
        # 窗口
        self.screen = screen
        # 来一个随机数
        self.num = random.randint(1, 7)
        # 一个子弹图片
        self.image = pygame.image.load('./feiji/bullet_' + str(self.num) + '.png')
        # 子弹矩形区域对象
        self.rect = self.image.get_rect()
        # 子弹左上角坐标
        self.rect.topleft = [x + 40, y + 60]
        # 子弹的速度
        self.speed = 10

    def update(self):
        """修改子弹坐标"""
        self.rect.bottom += self.speed
        # 如果子弹向下移出边界 删除它
        if self.rect.top > Manager.height:
            self.kill()

我就不全都放上来了,这款游戏我觉的就考验大家对面向对象的理解了, 代码下载下来就能用,每一行都写了注释,所以这里就不多废话 , 希望看完源码能对你有所帮助.

这里说一下:除了Constants模块是自己定义的,其他的都是导入的

飞机大战演示效果图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值