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

将main函数改为管理类函数

class Manager(object):
 def __init__(self):
 # 创建窗口
 self.screen = pygame.display.set_mode((480, 852), 0, 32)
 # 创建背景图片
 self.background = pygame.image.load("./feiji/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()
 # 刷新窗口内容
 pygame.display.update()
 time.sleep(0.01)
 # 判断碰撞
 iscollide = pygame.sprite.groupcollide(self.players, self.enemys, True, True)
 # 调用爆炸的对象
 self.player_bomb.draw()
 self.enemy_bomb.draw()
 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.players.update()
 # 敌机和子弹的显示
 self.enemys.update()
 # 刷新窗口内容
 pygame.display.update()
if __name__ == "main":
 manager = Manager()
 manager.main()
作者:赛博郎中原文地址:https://www.cnblogs.com/cyber120/p/19051714

%s 个评论

要回复文章请先登录注册