예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)