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
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
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
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
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