存储项目的大部分函数
This commit is contained in:
parent
dd068ae818
commit
9757093adf
|
@ -101,4 +101,37 @@ def update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets, bossal
|
|||
if bullet.rect.bottom <= 0:
|
||||
bullets.remove(bullet)
|
||||
|
||||
check_bullet_collisions(ai_settings, screen, stats, sb, ship, aliens, bossalien, bullets, bossbullet)
|
||||
check_bullet_collisions(ai_settings, screen, stats, sb, ship, aliens, bossalien, bullets, bossbullet)
|
||||
def check_bullet_collisions(ai_settings, screen, stats, sb, ship, aliens, bossalien, bullets, bossbullet):
|
||||
"""响应子弹和外星人的碰撞,以及外星人子弹和船的碰撞"""
|
||||
# 增加:只有在非BOSS关才启用
|
||||
if stats.level != stats.bosslevel:
|
||||
|
||||
# 删除发生碰撞的子弹和外星人
|
||||
collisions = pygame.sprite.groupcollide(bullets, aliens, True, True)
|
||||
|
||||
if collisions:
|
||||
for aliens in collisions.values():
|
||||
stats.score += ai_settings.alien_points * len(aliens)
|
||||
sb.prep_score()
|
||||
check_high_score(stats, sb)
|
||||
|
||||
if len(aliens) == 0:
|
||||
# 如果整群外星人都被消灭,就提高一个等级
|
||||
bullets.empty()
|
||||
ai_settings.increase_speed()
|
||||
|
||||
# 增加:播放音效
|
||||
pygame.mixer.init()
|
||||
sound = pygame.mixer.Sound('sounds/levelup.wav')
|
||||
sound.play()
|
||||
|
||||
# 提高等级
|
||||
stats.level += 1
|
||||
sb.prep_level()
|
||||
|
||||
# 如果当前关卡下一关是BOSS关就不要再生成舰队
|
||||
if stats.level != stats.bosslevel - 1:
|
||||
create_fleet(ai_settings, screen, ship, aliens)
|
||||
else:
|
||||
pass
|
Loading…
Reference in New Issue