1 importsys2 from time importsleep3
4 importpygame5
6 from bullet importBullet7 from alien importAlien8
9 defcheck_keydown_events(event, ai_settings, screen, ship, bullets):10 """响应按键"""
11 if event.key ==pygame.K_RIGHT:12 ship.moving_right =True13 elif event.key ==pygame.K_LEFT:14 ship.moving_left =True15 elif event.key ==pygame.K_UP:16 ship.moving_up =True17 elif event.key ==pygame.K_DOWN:18 ship.moving_down =True19 elif event.key ==pygame.K_SPACE:20 fire_bullet(ai_settings, screen, ship, bullets)21 elif event.key ==pygame.K_q:22 sys.exit()23
24 defcheck_keyup_events(event, ai_settings, screen, ship, bullets):25 """松开响应"""
26 if event.key ==pygame.K_RIGHT:27 ship.moving_right =False28 elif event.key ==pygame.K_LEFT:29 ship.moving_left =False30 elif event.key ==pygame.K_UP:31 ship.moving_up =False32 elif event.key ==pygame.K_DOWN:33 ship.moving_down =False34
35 defcheck_events(ai_settings, screen, stats, sb, play_button, ship, aliens,36 bullets):37 """响应按键和鼠标事件"""
38 for event inpygame.event.get():39 if event.type ==pygame.QUIT:40 sys.exit()41 elif event.type ==pygame.KEYDOWN:42 check_keydown_events(event, ai_settings, screen, ship, bullets)43
44 elif event.type ==pygame.KEYUP:45 check_keyup_events(event, ai_settings, screen, ship, bullets)46
47 elif event.type ==pygame.MOUSEBUTTONDOWN:48 mouse_x, mouse_y =pygame.mouse.get_pos()49 check_play_button(ai_settings, screen, stats, sb, play_button,50 ship, aliens, bullets, mouse_x, mouse_y)51
52 defcheck_play_button(ai_settings, screen, stats, sb, play_button, ship,53 aliens, bullets, mouse_x, mouse_y):54 """在玩家单击Play按钮时开始新游戏"""
55 button_clicked =play_button.rect.collidepoint(mouse_x, mouse_y)56 if button_clicked and notstats.game_active:57 #重置游戏设置
58 ai_settings.initialize_dynamic_settings()59
60 #隐藏光标
61 pygame.mouse.set_visible(False)62
63 #重置游戏统计信息
64 stats.reset_stats()65 stats.game_active =True66
67 #重置记分牌图像
68 sb.prep_score()69 sb.prep_high_score()70 sb.prep_level()71 sb.prep_ships()72
73 #清空外星人列表和子弹列表
74 aliens.empty()75 bullets.empty()76
77 #创建一群新的外星人,并让飞船居中
78 create_fleet(ai_settings, screen, ship, aliens)79 ship.center_ship()80
81 deffire_bullet(ai_settings, screen, ship, bullets):82 """Fire a bullet, if limit not reached yet."""
83 #Create a new bullet, add to bullets group.
84 if len(bullets)
""""""
""""""
<
"""""""
""""""
""""""
"""""""
""""""
""""""
"""
"""
""""""
""""""
""""""
""""""