@@ -87,28 +87,29 @@ def creat_fleet_alien(screen, game_state, aliens, aliens_num):
8787 aliens .add (alien )
8888
8989
90- def alien_short (scrren , gamge_state , aliens , ship , ai_settings ):
90+ def alien_short (scrren , game_state , aliens , ship , ai_settings ):
9191 """判断子弹是否命中外星人"""
9292 bullets = ship .get_bullets ()
9393 # 求子弹和外星人交集
94- collisions = pygame .sprite .groupcollide (aliens , bullets , True , True )
94+ collisions = pygame .sprite .groupcollide (aliens , bullets , True , False )
9595
9696 # 外星人都被消灭时重新创建外星人
9797 if 0 == len (aliens ):
9898 bullets .empty ()
9999 alien_num = ai_settings .cal_alien_num_line_default (scrren )
100- creat_fleet_alien (scrren , aliens , alien_num )
100+ creat_fleet_alien (scrren , game_state . game_state , aliens , alien_num )
101101 ai_settings .set_alien_info_default (aliens , alien_num )
102102 # print collisions
103103
104104
105105def shiphit_alienoverline (scrren , game_state , ship , aliens ):
106106 """外星人和飞船碰撞和过线处理"""
107107
108- # for alien in aliens:
109- # # 任意一个外星人过线
110- # if 0 == alien.get_distance_wall_top():
111- # game_state.game_state = 'stop'
108+ for alien in aliens :
109+ # 任意一个外星人过线
110+ if 0 > alien .get_distance_wall_top ():
111+ game_state .game_state = 'stop'
112+ break
112113
113114 if pygame .sprite .spritecollideany (ship , aliens ):
114115 game_state .game_state = 'stop'
@@ -132,4 +133,11 @@ def shiphit_alienoverline(scrren, game_state, ship, aliens):
132133 sleep (5 )
133134 sys .exit ()
134135
136+ # # elif 'running' == game_state.game_state:
137+ # # if 0 == alien.get_distance_wall_top():
138+ #
139+ # if 0 == len(aliens):
140+ # creat_fleet_alien(scrren, game_state, aliens, aliens_num)
141+
142+
135143
0 commit comments