Пример #1
0
    def run(self):

        nrLevel = 0
        pygame.init()
        sound = pygame.mixer.Sound("music/BackGround.wav")
        soundLose = pygame.mixer.Sound("music/Lose.wav")
        soundWin = pygame.mixer.Sound("music/Win.wav")
        sound.play(1)
        screen = pygame.display.set_mode(Setting.resolution, pygame.FULLSCREEN)

        pygame.display.set_caption('Croko')
        clock = pygame.time.Clock()
        main_loop = True
        collision = Collision()
        player = Player("img/PlayerUP.png", 1)
        players = pygame.sprite.Group()
        players.add(player)

        level = LevelHandler()

        level.loadFile(Setting.LEVELS[nrLevel])
        level.gen()
        playerBullets = pygame.sprite.Group()
        enemyBullets = pygame.sprite.Group()
        enemy = TigerTank(Setting.EnemySpawn[0])
        enemy1 = GhostTank(Setting.EnemySpawn[1])
        enemy2 = Enemy(Setting.EnemySpawn[2])
        enemy3 = Enemy(Setting.EnemySpawn[3])
        enem = EnemyHandler(enemyBullets)
        enem.tanks.add(enemy)
        enem.tanks.add(enemy1)
        enem.tanks.add(enemy2)
        enem.tanks.add(enemy3)
        credit = Credits()
        self.blocks = pygame.sprite.Group()
        self.blocks.remove(self.blocks)
        self.blocks = level.map()

        while main_loop:

            pygame.mouse.set_visible(False)
            player.getBlocks(self.blocks)
            enem.getBlocks(self.blocks)
            enem.getEnemyTanks()
            if (enem.count <= 0):
                if nrLevel is not Setting.LAST_LEVEL:
                    nrLevel += 1
                    self.blocks.remove(self.blocks)
                    level.loadFile(Setting.LEVELS[nrLevel])
                    level.gen()
                    enem.reset()
                else:
                    sound.stop()
                    soundWin.play(1)
                    pygame.time.wait(4500)
                    credit.run()
                    main_loop = False
            if (player.live <= 0):
                sound.stop()
                soundLose.play(1)
                pygame.time.wait(4500)
                main_loop = False
            for block in self.blocks:
                if isinstance(block, EaglBlock):
                    if block.life <= 0:
                        sound.stop()
                        soundLose.play(1)
                        pygame.time.wait(4500)
                        main_loop = False
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    main_loop = False
                    sound.stop()
                else:
                    player.reaction(event, playerBullets)
                    if event.type == pygame.KEYDOWN:
                        if event.key == pygame.K_ESCAPE:
                            main_loop = False
                            sound.stop()

            screen.fill(CZARNY)

            collision.playerCollisionWithEnemy(players, enem.tanks)
            collision.SelfbulletsCollisionWithEnemy(enem.tanks, enemyBullets)
            collision.bulletsCollisionWithPlayer(players, enemyBullets)
            collision.bulletCollisionWithBlocks(playerBullets, self.blocks)
            collision.bulletCollisionWithBlocks(enemyBullets, self.blocks)
            collision.bulletsCollisionWithBullets(enemyBullets, playerBullets)
            enem.bulletsCollisionWithSelf(playerBullets)
            players.draw(screen)
            players.update()
            playerBullets.update()
            playerBullets.draw(screen)
            enem.tanks.draw(screen)
            enem.shot()
            enem.tanks.update()

            enemyBullets.draw(screen)

            enemyBullets.update()
            self.blocks.draw(screen)

            pygame.display.flip()
            clock.tick(30)