网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 后端开发 > Python >

pygame小游戏飞机大战_11管理类创建

时间:2025-08-21 22:37

人气:

作者:admin

标签:

导读:将main函数改为管理类函数 class Manager(object): def __init__(self): # 创建窗口 self.screen = pygame.display.set_mode((480, 700), 0, 32) # 创建背景图片 self.background = p...

将main函数改为管理类函数

class Manager(object):
    def __init__(self):
        # 创建窗口
        self.screen = pygame.display.set_mode((480, 700), 0, 32)
        # 创建背景图片
        self.background = pygame.image.load("./images/background.png")
        # 初始化一个装玩家精灵的group
        self.players = pygame.sprite.Group()
        # 初始化一个装敌机精灵的group
        self.enemys = pygame.sprite.Group()
        # 初始化一个玩家爆炸的对象
        self.player_bomb = Bomb(self.screen, 'player')
        # 初始化一个敌机爆炸的对象
        self.enemy_bomb = Bomb(self.screen, 'enemy')
        # 初始化一个声音播放的对象
        self.sound = GameSound()

    def exit(self):
        print('退出')
        pygame.quit()
        exit()

    def new_player(self):
        # 创建飞机对象 添加到玩家的组
        player = Plane(self.screen)
        self.players.add(player)

    def new_enemy(self):
        # 创建敌机的对象 添加到敌机的组
        enemy = Enemy(self.screen)
        self.enemys.add(enemy)

    def main(self):
        # 播放背景音乐
        self.sound.PlayMusic()
        # 创建一个玩家
        self.new_player()
        # 创建一个敌机
        self.new_enemy()

        while True:
            # 把背景图片贴到窗口
            self.screen.blit(self.background, (0, 0))

            # 遍历所有的事件
            for event in pygame.event.get():
                # 判断事件类型如果是pygame的退出
                if event.type == pygame.QUIT:
                    self.exit()

            # 玩家飞机和子弹的显示
            self.players.update()
            # 敌机和子弹的显示
            self.enemys.update()

            # 绘制爆炸效果
            self.player_bomb.draw()
            self.enemy_bomb.draw()

            # 刷新窗口内容
            pygame.display.update()
            time.sleep(0.01)

            # 判断碰撞
            iscollide = pygame.sprite.groupcollide(self.players, self.enemys, True, True)

            if iscollide:
                items = list(iscollide.items())[0]
                print(items)
                x = items[0]
                y = items[1][0]
                # 玩家爆炸图片
                self.player_bomb.action(x.rect)
                # 敌机爆炸图片
                self.enemy_bomb.action(y.rect)

                # 重新创建玩家和敌机
                self.new_player()
                self.new_enemy()


if __name__ == "__main__":
    # 初始化pygame
    pygame.init()
    manager = Manager()
    manager.main()

 

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信