外星人项目无法生成多行外星人

wind10系统,跟着蟒蛇书上代码敲生成不了一群外星人



    def _create_fleet(self):
        # 创建外星人群
        # 创建一个外星人并计算一行可以容纳多少个外星人
        # 外星人的间距为外星人的宽度
        alien = Alien(self)
        alien_width, alien_height = alien.rect.size
        available_space_x = self.settings.screen_width - (2 * alien_width)
        number_aliens_x = available_space_x // (2 * alien_width)

        # 计算屏幕可容纳多少外星人。
        ship_height = self.ship.rect.height
        available_space_y = (self.settings.screen_height -
                             (3 * alien_height) - ship_height)
        number_rows = available_space_y // (2 * ship_height)

        # 创建第一行外星人
        for row_number in range(number_rows):
            for alien_number in range(number_aliens_x):
                self._create_alien(alien_number, row_number)

    def _create_alien(self, alien_number, row_number):
        # 创建一个新的外星人并将其加入当前行。
        alien = Alien(self)
        alien_width, alien_height = alien.rect.size
        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
        self.aliens.add(alien)

方法没有调用吧。只是定义了方法,并没调用相应方法。

以下答案引用自GPT-3大模型,请合理使用:

实例

可以给出代码实例如下:

def _create_fleet(self): 
    # 创建外星人群
    # 创建一个外星人并计算一行可以容纳多少个外星人
    # 外星人的间距为外星人的宽度
    alien = Alien(self) 
    alien_width, alien_height = alien.rect.size 
    available_space_x = self.settings.screen_width - (2 * alien_width) 
    number_aliens_x = available_space_x // (2 * alien_width)

    # 计算屏幕可容纳多少外星人。 
    ship_height = self.ship.rect.height 
    available_space_y = (self.settings.screen_height - 
                        (3 * alien_height) - ship_height) 
    number_rows = available_space_y // (2 * ship_height)

    # 循环创建外星人
    for row in range(number_rows):
        for alien_number in range(number_aliens_x):
            self._create_alien(row,alien_number) 
            
def _create_alien(self, row, alien_number): 
    # 创建一个新的外星人并将其加入当前行。
    alien = Alien(self) 
    alien_width, alien_height = alien.rect.size 
    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 
    self.aliens.add(alien)

如果我的回答解决了您的问题,请采纳我的回答

在外星人类的构造器里面,要把飞船的实例化类写在生成一群外星人方法的前面