From df13eac3b016781152ec2fd6934ae3875232c3cb Mon Sep 17 00:00:00 2001 From: 206530219 <236845922@qq.com> Date: Sat, 19 Jun 2021 12:23:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=98=E5=82=A8=E9=A1=B9=E7=9B=AE=E7=9A=84?= =?UTF-8?q?=E5=A4=A7=E9=83=A8=E5=88=86=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game_functions.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/game_functions.py b/game_functions.py index 18fe749..8d871db 100644 --- a/game_functions.py +++ b/game_functions.py @@ -214,3 +214,24 @@ def get_number_rows(ai_settings, ship_height, alien_height): 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 update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets, bossalien, bossbullet): + """ + 检查是否有外星人位于屏幕边缘,并更新整群外星人的位置 + """ + # 增加:在非BOSS关卡时检查 + if stats.level != stats.bosslevel: + check_fleet_edges(ai_settings, aliens) + aliens.update() + + # 检查是否有外星人到达屏幕底端 + check_aliens_bottom(ai_settings, screen, stats, sb, ship, aliens, bullets) + + # 检测外星人和飞船之间的碰撞 + if pygame.sprite.spritecollideany(ship, aliens): + ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets, bossalien, bossbullet) + + else: + check_bossalien_edges(ai_settings, bossalien) + bossalien.update()