diff --git a/Alien_Invasion.py b/Alien_Invasion.py index fba25b3..251a1f6 100644 --- a/Alien_Invasion.py +++ b/Alien_Invasion.py @@ -55,6 +55,28 @@ class AlienInvasion: # 管理游戏资源和行为的类11 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 * alien_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) + def run_game(self): # 开始游戏主循环 while True: self._check_events()