diff --git a/alien_invasion.py b/alien_invasion.py new file mode 100644 index 0000000..3da72f6 --- /dev/null +++ b/alien_invasion.py @@ -0,0 +1,52 @@ +import pygame +import game_functions as gf +from settings import Settings +from ship import Ship +from pygame.sprite import Group +from game_stats import GameStats +from button import Button +from scoreboard import Scoreboard +from playername_inputbox import PlayernameInputbox + + +def run_game(): + # 初始化游戏并创建一个屏幕对象 + pygame.init() + ai_settings = Settings() + screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height)) + pygame.display.set_caption("Alien Invasion") + + # 创建一艘飞船, 一个子弹编组和一个外星人编组 + ship = Ship(ai_settings, screen) + bullets = Group() + aliens = Group() + alien_bullets = Group() + super_bullets = Group() + + # 创建外星人群 + gf.create_fleet(ai_settings, screen, ship, aliens) + + # 创建一个用于游戏统计信息的示例,并创建记分牌 + stats = GameStats(ai_settings) + scoreboard = Scoreboard(ai_settings, screen, stats) + + # 创建开始游戏按钮 + play_button = Button(ai_settings, screen, "Play") + + # 创建玩家名字文本输入框 + playername_inputbox = PlayernameInputbox(screen) + + # 开始游戏的主循环 + while True: + gf.check_events(ai_settings, screen, ship, bullets, aliens, stats, play_button, scoreboard, alien_bullets, super_bullets, playername_inputbox) + + if stats.game_active: + ship.update() + gf.update_bullets(ai_settings, screen, ship, bullets, aliens, stats, scoreboard, super_bullets) + gf.update_aliens(ai_settings, screen, ship, bullets, aliens, stats, scoreboard, alien_bullets, super_bullets) + gf.update_aliens_fire_bullet(ai_settings, screen, ship, bullets, aliens, stats, scoreboard, alien_bullets, super_bullets) + + gf.update_screen(ai_settings, screen, ship, bullets, aliens, stats, play_button, scoreboard, alien_bullets, super_bullets, playername_inputbox) + + +run_game()