diff --git a/game_functions.py b/game_functions.py deleted file mode 100644 index de8679d..0000000 --- a/game_functions.py +++ /dev/null @@ -1,69 +0,0 @@ -import sys - -import pygame - -from bullet import Bullet - - -def check_keydown_events(event, ai_settings, screen, ship, bullets): - # 移动飞船 - if event.key == pygame.K_RIGHT: - ship.moving_right = True - elif event.key == pygame.K_LEFT: - ship.moving_left = True - elif event.key == pygame.K_SPACE: - fire_bullet(ai_settings, screen, ship, bullets) - - -def check_keyup_events(event, ship): - # 停止移动飞船 - if event.key == pygame.K_RIGHT: - ship.moving_right = False - elif event.key == pygame.K_LEFT: - ship.moving_left = False - - -def check_events(ai_settings, screen, ship, bullets): - """响应按键和鼠标事件""" - for event in pygame.event.get(): - if event.type == pygame.QUIT: - sys.exit() - - elif event.type == pygame.KEYDOWN: - check_keydown_events(event, ai_settings, screen, ship, bullets) - - elif event.type == pygame.KEYUP: - check_keyup_events(event, ship) - - -def fire_bullet(ai_settings, screen, ship, bullets): - """如果还没有达到限制,就发射一颗子弹""" - if len(bullets) < ai_settings.bullets_allowed: - # 创建一个子弹,并将其加入编组bullets - new_bullet = Bullet(ai_settings, screen, ship) - bullets.add(new_bullet) - - -def update_screen(ai_settings, screen, ship, bullets): - """更新屏幕上的图像,并切换到新屏幕""" - # 用背景色填充屏幕 - screen.fill(ai_settings.bg_color) - # 在飞船和外星人后面重新绘制所有的子弹 - for bullet in bullets.sprites(): - bullet.draw_bullet() - - # 绘制飞船图形 - ship.blitme() - - # 让最近绘制的屏幕可见(刷新屏幕) - pygame.display.flip() - - -def update_bullets(bullets): - """更新子弹位置,并删除已经消失的子弹""" - bullets.update() - - # 删除子弹 - for bullet in bullets.copy(): - if bullet.rect.bottom <= 0: - bullets.remove(bullet) \ No newline at end of file