예제 #1
0
def level_5(screen, WIDTH, HEIGHT):
    clock = pygame.time.Clock()
    level = 'level_5'
    all_sprites = pygame.sprite.Group()
    player_group = pygame.sprite.Group()
    bullet_group = pygame.sprite.Group()
    enemy_group = pygame.sprite.Group()
    enemy_eyes_group = pygame.sprite.Group()
    enemy_bullet_group = pygame.sprite.Group()
    hpbar_group = pygame.sprite.Group()
    destroyer_group = pygame.sprite.Group()
    player = Player((WIDTH // 2, HEIGHT // 2), (player_group, player_group))
    first_destroyer = Destroyer(
        (400, -200), (destroyer_group, destroyer_group), [(62, 121), (127, 85),
                                                          (145, 60), (163, 85),
                                                          (229, 121)], [],
        'Level_y_destroyer.png', program_level_5)

    enemy1 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 900, 900,
        first_destroyer.joints[0])
    enemy2 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 900, 900,
        first_destroyer.joints[1])
    enemy3 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 900, 900,
        first_destroyer.joints[2])
    enemy4 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 900, 900,
        first_destroyer.joints[3])
    enemy5 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 900, 900,
        first_destroyer.joints[4])
    enemy_group_array = [enemy1, enemy2, enemy3, enemy4, enemy5]
    running = True
    counter = 0
    attack_counter = 0
    flag = None
    attack_switch = 0
    while running:
        if player.dead:
            flag = death_screen_level_5(
                screen, WIDTH, HEIGHT,
                (all_sprites, bullet_group, enemy_group, enemy_eyes_group,
                 enemy_bullet_group, hpbar_group, destroyer_group), player,
                counter, level, first_destroyer, enemy_group_array)
            running = False
        elif len(enemy_group) == 0:
            flag = victory_screen(screen, WIDTH, HEIGHT, level)
            running = False
        else:
            counter += 1
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    return 'QUIT'
            keys_check(player)
            screen.fill((0, 0, 0))
            destroyer_group.draw(screen)
            enemy_group.draw(screen)
            enemy_eyes_group.draw(screen)
            destroyer_group.update(counter)
            enemy1.update(player, first_destroyer.xy, bullet_group)
            enemy2.update(player, first_destroyer.xy, bullet_group)
            enemy3.update(player, first_destroyer.xy, bullet_group)
            enemy4.update(player, first_destroyer.xy, bullet_group)
            enemy5.update(player, first_destroyer.xy, bullet_group)
            if (enemy1.hp <= 0 and enemy2.hp <= 0 and enemy3.hp <= 0
                    and enemy4.hp <= 0 and enemy5.hp <= 0):
                first_destroyer.kill()
            if counter > breakdown_level_2:
                player.attack((all_sprites, bullet_group), counter)
                if attack_counter % 56 <= 8 and enemy1.hp > 0:
                    new_enemy_bulles_1 = attack(
                        enemy1, player, (all_sprites, enemy_bullet_group),
                        'handswap_circle_left', attack_counter)
                if attack_counter % 20 == 10 and enemy2.hp > 0:
                    new_enemy_bullets_2 = attack(
                        enemy2, player, (all_sprites, enemy_bullet_group),
                        'spread_regular_grav_aff', 0)
                if attack_counter % 15 == 0 and enemy3.hp > 0:
                    new_enemy_bullets_3 = attack(
                        enemy3, player, (all_sprites, enemy_bullet_group),
                        'triple_regular_homing', attack_counter)
                if attack_counter % 20 == 0 and enemy4.hp > 0:
                    new_enemy_bullets_4 = attack(
                        enemy4, player, (all_sprites, enemy_bullet_group),
                        'spread_regular_grav_aff', attack_counter)
                if 28 <= attack_counter % 56 <= 36 and enemy5.hp > 0:
                    new_enemy_bullets_5 = attack(
                        enemy5, player, (all_sprites, enemy_bullet_group),
                        'handswap_circle_right', attack_counter)
                attack_counter += 1
            attack_switch = (attack_switch + 1) % 7
            player_group.draw(screen)
            player_group.update(enemy_bullet_group)
            all_sprites.draw(screen)
            all_sprites.update()
            hpbar_group.draw(screen)
            pygame.display.flip()
            clock.tick(50)
    return flag
예제 #2
0
def level_4(screen, WIDTH, HEIGHT):
    clock = pygame.time.Clock()
    level = 'level_4'
    all_sprites = pygame.sprite.Group()
    player_group = pygame.sprite.Group()
    bullet_group = pygame.sprite.Group()
    enemy_group = pygame.sprite.Group()
    enemy_eyes_group = pygame.sprite.Group()
    enemy_bullet_group = pygame.sprite.Group()
    hpbar_group = pygame.sprite.Group()
    destroyer_group = pygame.sprite.Group()
    player = Player((WIDTH // 2, HEIGHT // 2), (player_group, player_group))
    first_destroyer = Destroyer(
        (400, -200), (destroyer_group, destroyer_group), [(62, 121), (145, 93),
                                                          (229, 121)], [],
        'Level_x_destroyer.png', program_level_4)

    enemy1 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 900, 900,
        first_destroyer.joints[0])
    enemy2 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 900, 900,
        first_destroyer.joints[1])
    enemy3 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 900, 900,
        first_destroyer.joints[2])
    enemy_group_array = [enemy1, enemy2, enemy3]
    running = True
    counter = 0
    attack_counter = 0
    flag = None
    attack_switch = 0
    while running:
        if player.dead:
            flag = death_screen_level_4(
                screen, WIDTH, HEIGHT,
                (all_sprites, bullet_group, enemy_group, enemy_eyes_group,
                 enemy_bullet_group, hpbar_group, destroyer_group), player,
                counter, level, first_destroyer, enemy_group_array)
            running = False
        elif len(enemy_group) == 0:
            flag = victory_screen(screen, WIDTH, HEIGHT, level)
            running = False
        else:
            counter += 1
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    return 'QUIT'
            keys_check(player)
            screen.fill((0, 0, 0))
            destroyer_group.draw(screen)
            enemy_group.draw(screen)
            enemy_eyes_group.draw(screen)
            destroyer_group.update(counter)
            enemy1.update(player, first_destroyer.xy, bullet_group)
            enemy2.update(player, first_destroyer.xy, bullet_group)
            enemy3.update(player, first_destroyer.xy, bullet_group)
            if enemy1.hp <= 0 and enemy2.hp <= 0 and enemy3.hp <= 0:
                first_destroyer.kill()
            if counter > breakdown_level_4:
                player.attack((all_sprites, bullet_group), counter)
                if attack_counter % 3 == 0 and enemy1.hp > 0:
                    new_enemy_bulles_1 = attack(
                        enemy1, player, (all_sprites, enemy_bullet_group),
                        'circular_circle_fast', attack_counter)
                if attack_counter % 3 == 0 and enemy3.hp > 0:
                    new_enemy_bullets_3 = attack(
                        enemy3, player, (all_sprites, enemy_bullet_group),
                        'circular_circle_fast', attack_counter)
                if attack_counter % 15 == 0 and enemy2.hp > 0:
                    new_enemy_bullets_2 = attack(
                        enemy2, player, (all_sprites, enemy_bullet_group),
                        'random_regular', attack_counter)
                attack_counter += 1
            attack_switch = (attack_switch + 1) % 7
            player_group.draw(screen)
            player_group.update(enemy_bullet_group)
            all_sprites.draw(screen)
            all_sprites.update()
            hpbar_group.draw(screen)
            pygame.display.flip()
            clock.tick(50)
    return flag
예제 #3
0
def level_1(screen, WIDTH, HEIGHT):
    clock = pygame.time.Clock()
    level = 'level_1'
    all_sprites = pygame.sprite.Group()
    player_group = pygame.sprite.Group()
    bullet_group = pygame.sprite.Group()
    enemy_group = pygame.sprite.Group()
    enemy_eyes_group = pygame.sprite.Group()
    enemy_bullet_group = pygame.sprite.Group()
    hpbar_group = pygame.sprite.Group()
    destroyer_group = pygame.sprite.Group()
    player = Player((WIDTH // 2, HEIGHT // 2), (player_group, player_group))
    demo_destroyer = Destroyer((400, -200), (destroyer_group, destroyer_group),
                               [(141, 88)], [], 'Level_1_destroyer.png',
                               program_level_1)
    enemy1 = Bullet_Shooter_Module(
        (100, 100), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 1000, 1000,
        demo_destroyer.joints[0])
    running = True
    counter = 0
    attack_counter = 0
    flag = None
    attack_switch = 0
    while running:
        if player.dead:
            flag = death_screen_level_1(
                screen, WIDTH, HEIGHT,
                (all_sprites, bullet_group, enemy_group, enemy_eyes_group,
                 enemy_bullet_group, hpbar_group, destroyer_group), player,
                counter, level, demo_destroyer)
            running = False
        elif len(enemy_group) == 0:
            flag = victory_screen(screen, WIDTH, HEIGHT, level)
            running = False
        else:
            counter += 1
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    return 'QUIT'
            keys_check(player)
            #player.attack((all_sprites, bullet_group), counter)
            screen.fill((0, 0, 0))
            destroyer_group.draw(screen)
            enemy_group.draw(screen)
            enemy_eyes_group.draw(screen)
            destroyer_group.update(counter)
            enemy_group.update(player, demo_destroyer.xy, bullet_group)
            if counter > breakdown_level_1:
                player.attack((all_sprites, bullet_group), counter)
                if attack_switch <= 3 and attack_counter % 20 == 0:
                    for enemy in enemy_group.sprites():
                        new_enemy_bullets = attack(
                            enemy, player, (all_sprites, enemy_bullet_group),
                            'circle_spread', attack_counter)
                elif 4 <= attack_switch <= 6 and attack_counter % 20 == 0:
                    for enemy in enemy_group.sprites():
                        new_enemy_bullets = attack(
                            enemy, player, (all_sprites, enemy_bullet_group),
                            'triple_regular_homing', attack_counter)
                attack_counter += 1
            attack_switch = (attack_switch + 1) % 7
            player_group.draw(screen)
            player_group.update(enemy_bullet_group)
            all_sprites.draw(screen)
            all_sprites.update()
            hpbar_group.draw(screen)
            pygame.display.flip()
            clock.tick(50)
    return flag
예제 #4
0
def level_3(screen, WIDTH, HEIGHT):
    clock = pygame.time.Clock()
    level = 'level_3'
    all_sprites = pygame.sprite.Group()
    player_group = pygame.sprite.Group()
    bullet_group = pygame.sprite.Group()
    enemy_group = pygame.sprite.Group()
    enemy_eyes_group = pygame.sprite.Group()
    enemy_bullet_group = pygame.sprite.Group()
    hpbar_group = pygame.sprite.Group()
    destroyer_group = pygame.sprite.Group()
    player = Player((WIDTH // 2, HEIGHT // 2), (player_group, player_group))
    first_destroyer = Destroyer(
        (400, -200), (destroyer_group, destroyer_group), [(62, 111),
                                                          (229, 111)], [],
        'Level_m_destroyer.png', program_level_3_1)
    second_destroyer = Destroyer(
        (400, -200), (destroyer_group, destroyer_group), [(141, 88)], [],
        'Level_1_destroyer.png', program_level_3_2)
    third_destroyer = Destroyer(
        (400, -200), (destroyer_group, destroyer_group), [(141, 88)], [],
        'Level_1_destroyer.png', program_level_3_3)

    enemy1 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 900, 900,
        first_destroyer.joints[0])
    enemy2 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 900, 900,
        first_destroyer.joints[1])
    enemy3 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 300, 300,
        second_destroyer.joints[0])
    enemy4 = Bullet_Shooter_Module(
        (-50, -50), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 300, 300,
        third_destroyer.joints[0])
    enemy_group_array = [enemy1, enemy2, enemy3, enemy4]
    running = True
    counter = 0
    attack_counter = 0
    flag = None
    attack_switch = 0
    while running:
        if player.dead:
            flag = death_screen_level_3(
                screen, WIDTH, HEIGHT,
                (all_sprites, bullet_group, enemy_group, enemy_eyes_group,
                 enemy_bullet_group, hpbar_group, destroyer_group), player,
                counter, level, first_destroyer, second_destroyer,
                third_destroyer, enemy_group_array)
            running = False
        elif len(enemy_group) == 0:
            flag = victory_screen(screen, WIDTH, HEIGHT, level)
            running = False
        else:
            counter += 1
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    return 'QUIT'
            keys_check(player)
            screen.fill((0, 0, 0))
            destroyer_group.draw(screen)
            enemy_group.draw(screen)
            enemy_eyes_group.draw(screen)
            destroyer_group.update(counter)
            #enemy_group.update(player, demo_destroyer.xy, bullet_group)
            enemy1.update(player, first_destroyer.xy, bullet_group)
            enemy2.update(player, first_destroyer.xy, bullet_group)
            enemy3.update(player, second_destroyer.xy, bullet_group)
            enemy4.update(player, third_destroyer.xy, bullet_group)
            #print(first_destroyer.xy, counter)
            if enemy1.hp <= 0 and enemy2.hp <= 0:
                first_destroyer.kill()
            if enemy3.hp <= 0:
                second_destroyer.kill()
            if enemy4.hp <= 0:
                third_destroyer.kill()
            if counter > breakdown_level_2:
                player.attack((all_sprites, bullet_group), counter)
                if attack_counter % 5 == 0 and enemy1.hp > 0:
                    new_enemy_bulles_1 = attack(
                        enemy1, player, (all_sprites, enemy_bullet_group),
                        'circular_circle', attack_counter)
                if attack_counter % 5 == 0 and enemy2.hp > 0:
                    new_enemy_bullets_2 = attack(
                        enemy2, player, (all_sprites, enemy_bullet_group),
                        'circular_circle', attack_counter)
                if attack_counter % 20 == 0 and enemy3.hp > 0:
                    new_enemy_bullets_3 = attack(
                        enemy3, player, (all_sprites, enemy_bullet_group),
                        'single_regular_homing', attack_counter)
                if attack_counter % 20 == 0 and enemy4.hp > 0:
                    new_enemy_bullets_4 = attack(
                        enemy4, player, (all_sprites, enemy_bullet_group),
                        'single_regular_homing', attack_counter)

                #if attack_switch <= 3 and attack_counter % 20 == 0:
                #    new_enemy_bullets = attack(enemy, player,
                #                                (all_sprites, enemy_bullet_group),
                #                                'circle_spread', attack_counter)
                #elif 4 <= attack_switch <= 6 and attack_counter % 20 == 0:
                #    new_enemy_bullets = attack(enemy, player,
                #                                (all_sprites, enemy_bullet_group),
                #                                'triple_regular_homing', attack_counter)
                attack_counter += 1
            attack_switch = (attack_switch + 1) % 7
            player_group.draw(screen)
            player_group.update(enemy_bullet_group)
            all_sprites.draw(screen)
            all_sprites.update()
            hpbar_group.draw(screen)
            pygame.display.flip()
            clock.tick(50)
    return flag
예제 #5
0
def dev_mode_level(screen, WIDTH, HEIGHT):
    clock = pygame.time.Clock()

    level = 'dev_mode_level'
    all_sprites = pygame.sprite.Group()
    player_group = pygame.sprite.Group()
    bullet_group = pygame.sprite.Group()
    enemy_group = pygame.sprite.Group()
    enemy_eyes_group = pygame.sprite.Group()
    enemy_bullet_group = pygame.sprite.Group()
    hpbar_group = pygame.sprite.Group()
    destroyer_group = pygame.sprite.Group()

    player = Player((WIDTH // 2, HEIGHT // 2), (player_group, player_group))
    #enemy1 = Bullet_Shooter_Module((100, 100), player,
    #                               (enemy_eyes_group, enemy_eyes_group),
    #                               (enemy_group, enemy_group),
    #                               hpbar_group,
    #                               1000, 1000)
    demo_destroyer = Destroyer((400, -200), (destroyer_group, destroyer_group),
                               [(141, 88)], [], 'Level_1_destroyer.png',
                               program_level_1)
    enemy1 = Bullet_Shooter_Module(
        (100, 100), player, (enemy_eyes_group, enemy_eyes_group),
        (enemy_group, enemy_group), hpbar_group, 1000, 1000,
        demo_destroyer.joints[0])

    running = True
    counter = 0
    flag = None
    while running:
        if player.dead:
            flag = death_screen(
                screen, WIDTH, HEIGHT,
                (all_sprites, bullet_group, enemy_group, enemy_eyes_group,
                 enemy_bullet_group, hpbar_group, destroyer_group), player,
                counter, level, demo_destroyer)
            running = False
        elif len(enemy_group) == 0:
            flag = victory_screen(screen, WIDTH, HEIGHT, level)
            running = False
        else:
            counter += 1
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    return 'QUIT'
            keys_check(player)
            #new_bullet = YourBullet((player.rect.centerx, player.rect.y),
            #                        (all_sprites, bullet_group))
            player.attack((all_sprites, bullet_group), counter)

            screen.fill((0, 0, 0))
            destroyer_group.draw(screen)
            enemy_group.draw(screen)
            enemy_eyes_group.draw(screen)

            destroyer_group.update(counter)
            enemy_group.update(player, demo_destroyer.xy, bullet_group)

            for enemy in enemy_group.sprites():
                new_enemy_bullets = attack(enemy, player,
                                           (all_sprites, enemy_bullet_group),
                                           'handswap_circle_left', counter)
            player_group.draw(screen)
            player_group.update(enemy_bullet_group)
            all_sprites.draw(screen)
            all_sprites.update()
            hpbar_group.draw(screen)
            pygame.display.flip()
            clock.tick(50)
    return flag