在Python速成课程练习中无法解决NameError数小时

时间:2019-08-06 07:11:58

标签: python pygame

我有一个未解决的参考,给我一个NameError,但我检查了本书中的代码,它与我的代码相同,但Pygame无法运行。

这是文件中出现错误的错误代码:

def get_number_aliens_x(ai_settings, alien_width):
    """Determine the number of aliens that fit in a row"""
    available_space_x = ai_settings.screen_width - 2 * alien_width
    number_aliens_x = int(available_space_x / (2 * alien_width))
    return number_aliens_x

def get_number_rows(ai_settings, ship_height, alien_height):
    """Determine the number of rows of aliens that fit onto the screen"""
    available_space_y = (ai_settings.screen_height -
                         (3 * alien_height) - ship_height)
    number_rows = int(available_space_y / (2 * alien_height))
    return  number_rows

def create_alien(ai_settings, screen, aliens, alien_number, row_number):
    """Create an alien and place it in the row"""
    alien = Alien(ai_settings, screen)
    alien_width = alien.rect.width
    alien.x = alien_width + 2 * alien_width * alien_number
    alien.rect.x = alien.x
    alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_number
    aliens.add(alien)

def create_fleet(ai_settings, screen, ship, aliens):
        """Create a full fleet of aliens"""
        # Create an alien and find the number of aliens in a row
        # Spacing between each alien is equal to one alien width
        alien = Alien(ai_settings, screen)
        number_aliens_x = get_number_aliens_x(ai_settings, alien.rect.width)
        number_rows = get_number_rows(ai_settings, ship.rect.height, 
    alien.rect.height)
        # Create first row of aliens
        for row_number in range(number_rows):
            for alien in range(number_aliens_x):
                create_alien(ai_settings, screen, aliens, alien_number, 
    row_number)

错误是:

Traceback (most recent call last):
      File "E:/Python Projekti/Alien_invasion/alien_invasion.py", line 43, in 
    <module>
        run_game()
      File "E:/Python Projekti/Alien_invasion/alien_invasion.py", line 28, in 
    run_game
        gf.create_fleet(ai_settings, screen, ship, aliens)
      File "E:\Python Projekti\Alien_invasion\game_functions.py", line 105, in 
    create_fleet
        create_alien(ai_settings, screen, aliens, alien_number, row_number)
    NameError: name 'alien_number' is not defined

0 个答案:

没有答案