更新 'alien_invasion.py'

This commit is contained in:
206530228 2021-06-23 14:40:57 +08:00
parent 48979bf9a2
commit 5bcd31edf5
1 changed files with 22 additions and 5 deletions

View File

@ -28,11 +28,6 @@ class AlienInvasion:
# 设置背景色
self.bg_color = (230, 230, 230)
# 背景音乐
pygame.mixer.music.load('music/flash.mp3')
pygame.mixer.music.play(-1) # 重复循环
def _create_fleet(self):
"""创建外星人群"""
@ -69,8 +64,17 @@ class AlienInvasion:
self._check_events()
self.ship.update()
self._update_bullets()
self._update_aliens()
self._update_screen()
def _update_aliens(self):
"""
检查是否有外星人位于屏幕边缘
并更新整群外星人的位置
"""
self._check_fleet_edges()
self.aliens.update()
def _update_bullets(self):
"""更新子弹的位置并删除消失的子弹"""
#更新子弹的位置
@ -125,6 +129,19 @@ class AlienInvasion:
pygame.display.flip()
def _check_fleet_edges(self):
"""有外星人到达边缘时采取相应的措施"""
for alien in self.aliens.sprites():
if alien.check_edges():
self._change_fleet_direction()
break
def _change_fleet_direction(self):
"""将整个外星人下移,并改变它们的方向"""
for alien in self.aliens.sprites():
alien.rect.y += self.settings.fleet_drop_speed
self.settings.fleet_direction *= -1
if __name__ == '__main__':
# 创建游戏实例并运行游戏
ai = AlienInvasion()