Ejemplo n.º 1
0
def run_game():
    #Cria bullet group
    bullets = Group()
    #Cria enemy group
    enemies = Group()
    #Cira enemy bullet group
    ebullets = Group()
    bbullets = Group()
    explosions = Group()
    gSettings.resetDificulty()

    gf.clearScore()

    bg = Background(gSettings, screen, trueScreen, 0)
    clouds = Group()
    for i in range(3):
        new_cloud = Background(gSettings, screen, trueScreen, 1)
        clouds.add(new_cloud)
        new_cloud = Background(gSettings, screen, trueScreen, 2)
        clouds.add(new_cloud)

    #Cria jogador
    p1 = Player(gSettings, screen, enemies, soundController, trueScreen,
                explosions, ebullets, bbullets)

    level = Level(screen, gSettings, enemies, p1, trueScreen)

    gf.initGUI(gSettings, screen)
    gf.getHighScore()
    soundController.playMusic(0)

    #Inicia o loop principal do jogo.
    level.generateSpawn()
    boss = Boss(gSettings, screen, 347, 100, p1, soundController)
    bossCount = 0
    bossSpawned = False
    first = 0

    while True:

        clock.tick(fps)

        gf.checkEvents(p1, gSettings, screen, bullets, boss, bossSpawned)
        gf.updateScreen(gSettings, screen, p1, bullets, enemies, ebullets, bg,
                        clouds, explosions, boss, bbullets, bossSpawned)
        gf.updateBg(bg, clouds)
        p1.update(bullets)
        gf.updateBullets(bullets, enemies, soundController, screen, explosions,
                         boss)
        gf.updateExplosions(explosions)
        gf.updateEBullets(ebullets, p1)
        gf.updateBBullets(bbullets, p1)
        gf.updateEnemies(enemies, p1, ebullets)
        gf.updateBoss(boss, bbullets, p1, bossSpawned)
        gf.updateScore()

        if len(enemies) == 0:
            if bossCount >= 20:
                bossCount = 0
                if first == 1:
                    gSettings.bossIncrease()
                    boss = Boss(gSettings, screen, 347, 100, p1,
                                soundController)
                bossSpawned = True
                soundController.stopMusic()
                soundController.playMusic(1)
            else:
                if not bossSpawned:
                    gSettings.difficultyIncrease()
                    level.generateSpawn()
                    bossCount += 1
                else:
                    if boss.hp <= 0:
                        bossSpawned = False
                        boss.alive = False
                        soundController.stopMusic()
                        soundController.playMusic(0)
                        gf.addBScore(p1)
                        first = 1
                        soundController.playSound(6)
                        new_explosion = new_explosion = Explosion(
                            screen, boss.rect.centerx, boss.rect.centery, 200,
                            10, 0)
                        explosions.add(new_explosion)

        if p1.dead and not pygame.mixer.get_busy():
            telaBotoes("Game Over", "Novamente", "Sair")