def create_fleet(ai_settings, screen, ship, aliens): alien = Objects.Alien(ai_settings, screen) number_aliens_x = get_aliens_number_x(ai_settings, alien.pos.width) number_rows = get_number_rows(ai_settings, ship.pos.height, alien.pos.height) for rows in range(number_rows): for alien_number in range(number_aliens_x): create_alien(ai_settings, screen, aliens, alien_number, rows)
def create_alien(ai_settings, screen, aliens, alien_number, row_number): alien = Objects.Alien(ai_settings, screen) alien_width = alien.pos.width alien.x = (alien_width + ai_settings.alien_center ) + (alien_width + ai_settings.alien_space_x) * alien_number alien.pos.x = alien.x alien.pos.y = (alien.pos.height - ai_settings.score_board_height ) + \ (alien.pos.height + ai_settings.alien_space_y ) * row_number aliens.add(alien)
def game_loop(): print("Starting game loop") exit_game = False background_x = 0 background_y = 0 player_x = (display_width * 0.5) player_y = (display_height * 0.5) player_width = player_image_dimensions[0] player_height = player_image_dimensions[1] player_x_acceleration = 0 player_y_acceleration = 0 alien1 = Objects.Alien(display_width, display_height) alien2 = Objects.Alien(display_width, display_height) alien3 = Objects.Alien(display_width, display_height) aliens_list.clear() aliens_list.append(alien_collision(alien1)) aliens_list.append(alien_collision(alien2)) aliens_list.append(alien_collision(alien3)) # bunch of definitions while not exit_game: for event in pygame.event.get(): # Controls if event.type == pygame.QUIT: exit_game = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_a: player_x_acceleration = -7 if event.key == pygame.K_d: player_x_acceleration = 7 if event.key == pygame.K_w: player_y_acceleration = -7 if event.key == pygame.K_s: player_y_acceleration = 7 if event.key == pygame.K_ESCAPE: closing_sequence() if event.type == pygame.KEYUP: if event.key == pygame.K_a: player_x_acceleration = 0 if event.key == pygame.K_d: player_x_acceleration = 0 if event.key == pygame.K_s: player_y_acceleration = 0 if event.key == pygame.K_w: player_y_acceleration = 0 # Player conditionals player_x_end = (player_x + player_width) player_y_end = (player_y + player_height) if player_x_end >= display_width: player_x_acceleration = -1 if player_x <= 0: player_x_acceleration = 1 if player_y <= 0: player_y_acceleration = 1 if player_y_end >= display_height: player_y_acceleration = -1 player_x += player_x_acceleration player_y += player_y_acceleration activate_background( background_x, background_y) # please blit after the background genius boi alien(alien1) alien(alien2) alien(alien3) player(player_x, player_y) hp_counter(0, 0) aliens_list.clear() aliens_list.append(alien_collision(alien1)) aliens_list.append(alien_collision(alien2)) aliens_list.append(alien_collision(alien3)) # print(player_collision(player_x, player_y)) # print(type(player_collision(player_x, player_y))) # this does give me the correct 'class pygame.Rect' Type # print(type(alien_collision(alien1))) # is this the sweet taste of victory? if player_collision(player_x, player_y).collidelist(aliens_list) == 0: print('hit!') damage_taken(1) alien1.y = 400 if player_collision(player_x, player_y).collidelist(aliens_list) == 1: print('hit!') damage_taken(1) alien2.y = -400 if player_collision(player_x, player_y).collidelist(aliens_list) == 2: print('hit!') damage_taken(1) alien3.y = -400 # print(aliens_list) pygame.display.update() clock1.tick(120)