更新 'Alien_Invasion.py'
This commit is contained in:
parent
f59929ef91
commit
c42975c623
|
@ -137,9 +137,71 @@ class AlienInvasion:
|
|||
self.sb.prep_level()
|
||||
|
||||
def _check_events(self):
|
||||
"""响应按键和鼠标事件"""
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
sys.exit()
|
||||
elif event.type == pygame.KEYDOWN:
|
||||
self._check_keydown_events(event)
|
||||
elif event.type == pygame.KEYUP:
|
||||
self._check_keyup_events(event)
|
||||
elif event.type == pygame.MOUSEBUTTONDOWN:
|
||||
mouse_pos = pygame.mouse.get_pos()
|
||||
self._check_play_button(mouse_pos)
|
||||
|
||||
def _check_play_button(self,mouse_pos):
|
||||
"""在玩家单机Play按钮时开始新游戏"""
|
||||
button_clicked = self.play_button.rect.collidepoint(mouse_pos)
|
||||
if button_clicked and not self.stats.game_active:
|
||||
# 重置游戏设置
|
||||
self.settings.initialize_dynamic_settings()
|
||||
|
||||
# 重置游戏统计信息
|
||||
self.stats.reset_stats()
|
||||
self.stats.game_active = True
|
||||
self.sb.prep_score()
|
||||
self.sb.prep_level()
|
||||
self.sb.prep_ships()
|
||||
|
||||
# 清空余下的外星人和子弹
|
||||
self.aliens.empty()
|
||||
self.bullets.empty()
|
||||
|
||||
elif event.type == pygame.KEYDOWN:
|
||||
# 创建一群新的外星人并让飞船居中
|
||||
self._create_fleet()
|
||||
self.ship.center_ship()
|
||||
|
||||
# 隐藏鼠标光标
|
||||
pygame.mouse.set_visible(False)
|
||||
|
||||
def _check_keydown_events(self, event):
|
||||
"""响应按键"""
|
||||
if event.key == pygame.K_RIGHT:
|
||||
self.ship.moving_right = True
|
||||
elif event.key == pygame.K_LEFT:
|
||||
elif event.key == pygame.K_LEFT:
|
||||
self.ship.moving_left = True
|
||||
elif event.key == pygame.K_q:
|
||||
sys.exit()
|
||||
elif event.key == pygame.K_SPACE:
|
||||
self._fire_bullet()
|
||||
|
||||
elif event.type == pygame.KEYUP:
|
||||
def _check_keyup_events(self,event):
|
||||
"""响应松开"""
|
||||
if event.key == pygame.K_RIGHT:
|
||||
self.ship.moving_right = False
|
||||
self.ship.moving_right = False
|
||||
elif event.key == pygame.K_LEFT:
|
||||
self.ship.moving_left = False
|
||||
self.ship.moving_left = False
|
||||
|
||||
def _fire_bullet(self):
|
||||
"""创建一颗子弹,并将其加入编组bullets中"""
|
||||
if len(self.bullets) < self.settings.bullets_allowed:
|
||||
new_bullet = Bullet(self)
|
||||
self.bullets.add(new_bullet)
|
||||
|
||||
elif event.type == pygame.KEYDOWN:
|
||||
if event.key == pygame.K_RIGHT:
|
||||
|
|
Loading…
Reference in New Issue