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') #game window title ship = Ship(ai_settings, screen) #creat a ship bullets = Group() aliens = Group() stats = GameStats(ai_settings) play_button = Button(ai_settings, screen, "Play") sb = Scoreboard(ai_settings, screen, stats) #creat alien group game_functions.creat_fleet(ai_settings, screen, ship, aliens) game_functions.read_high_score(stats, sb) #游戏主循环 while True: #键盘和鼠标事件 game_functions.check_events(ai_settings, screen, stats, ship, aliens, bullets, sb, play_button) if stats.game_active: ship.update() game_functions.update_bullets(ai_settings, screen, stats, ship, aliens, bullets, sb) game_functions.update_aliens(ai_settings, stats, screen, ship, aliens, bullets, sb) game_functions.update_screen(ai_settings, screen, stats, ship, aliens, bullets, sb, play_button)
def run_game(): """运行游戏方法""" #initial the game and create a screen object pygame.init() #创建 Setting 实例 ai_settings = Settings() screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") #创建开始按钮 play_button = Button(ai_settings, screen, "PLAY!") #创建一个用于存储游戏统计信息的实例 stats = GameStates(ai_settings) sb = Scoreboard(ai_settings, screen, stats) #创建一个飞船 ship = Ship(ai_settings, screen) #创建一个存储子弹的编组 Group bullets = Group() #创建一个外星人 aliens = Group() gf.create_fleet(ai_settings, screen, ship, aliens) #读取历史最高分 gf.read_high_score(stats) sb.prep_high_score() #The main loop while True: #检查玩家输入 gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) #游戏主体需要启动方可运行 if stats.game_active: #更新飞船 ship.update() #更新子弹 gf.update_bullet(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_aliens(ai_settings, stats, sb, screen, ship, aliens, bullets) #重绘屏幕 gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button)
def run_game(): pygame.init() #建立一个Settings的对象 ai_settings = Settings() #调用对象内的参数 screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") play_button = Button(ai_settings, screen, "Play") ship = Ship(ai_settings, screen) bullets = Group() aliens = Group() #产生地人群 gf.create_fleet(ai_settings, screen, ship, aliens) stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) #stats.high_score = 777 #gf.save_high_score(ai_settings, stats) gf.read_high_score(ai_settings, stats) sb.prep_high_score() while True: #检测退出信号 gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) if stats.game_active: ship.update() gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button)
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 ———— by 王胜") # 创建Play按钮 play_button = Button(ai_settings, screen, "Play") # 创建一个用于存储游戏统计信息的实例 stats = GameStats(ai_settings) # 在窗口右上角创建记分牌 scoreboard = Scoreboard(ai_settings, screen, stats) # 创建一艘飞船 ship = Ship(ai_settings, screen) #创建一个用于存储子弹的编组和一个外星人的编组 bullets = Group() aliens = Group() gf.create_fleet(ai_settings, screen, aliens, ship) # 读取最高得分数据 gf.read_high_score(stats, scoreboard) # 开始游戏的主循环 while True: # 监视键盘和鼠标事件 gf.check_events(ai_settings, screen, stats, play_button, ship, aliens, bullets, scoreboard) if stats.game_active: ship.update() gf.update_bullets(ai_settings, screen, aliens, bullets, ship, stats, scoreboard) gf.update_aliens(ai_settings, stats, screen, ship, aliens, bullets, scoreboard) # 每次循环时都重绘屏幕,并切换到新屏幕 gf.update_screen(ai_settings, stats, ship, screen, bullets, aliens, play_button, scoreboard)
def __init__(self, ai_settings): """初始化统计信息""" self.ai_settings = ai_settings self.reset_stats() # 游戏刚启动时处于非活动状态 self.game_active = False # 在任何情况下都不应该重置最高分 # 先从文件中读取,有则显示最高分,没有则显示0 read_high_score = gf.read_high_score() print(read_high_score) if read_high_score.strip() == '': print(read_high_score+"为空") self.high_score = int(0) else: self.high_score = int(read_high_score) print(str(self.high_score)+"==最终结果")
def run_game(): # innitialize game and creat a screen object. pygame.init() ai_settings = Settings() screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") # Make the Play button. play_button = Button(ai_settings, screen, "Play") # Create an instance to store game statistics and create a scoreboard. stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) # Make a ship, a group of bullets, and a group of aliens. ship = Ship(ai_settings, screen) bullets = Group() aliens = Group() # Create the fleet of aliens. gf.create_fleet(ai_settings, screen, ship, aliens) # get the high score stats.high_score = gf.read_high_score(stats) #start the main loop for the game. while True: gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) if stats.game_active: ship.update() gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button)
def run_game(): """Main function to run game""" # Initialize game and create a screen object pygame.init() ai_settings = Settings() # Set screen width and height screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height), pygame.RESIZABLE) pygame.display.set_caption("CharLee MacDennis 2: Electric Bugaloo") # Make the Play button play_button = Button(ai_settings, screen, "Play") # Make the Puase button pause_button = Button(ai_settings, screen, "Paused") # Create an instance to store game statistics stats = GameStats(ai_settings) # Set stats.high_score to be equal to universal high score stats.high_score = gf.read_high_score() # Create a scoreboard sb = Scoreboard(ai_settings, screen, stats) # Make a ship, a group of ship bullets ship = Ship(ai_settings, screen) ship_bullets = Group() # Create alien and group of alien bullets aliens = Group() alien_bullets = Group() # Create the fleet of aliens gf.create_fleet(ai_settings, screen, ship, aliens) # Create clock for FPS limit clock = pygame.time.Clock() # Start the main game loop while True: # 60 fps clock.tick(120) # Watch for keyboard and mouse events gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, ship_bullets, alien_bullets) if stats.game_active: # Update ship status ship.update() # Update all bullets on screen gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, ship_bullets, alien_bullets) # Update aliens status gf.update_aliens(ai_settings, stats, screen, sb, ship, aliens, ship_bullets, alien_bullets) # Draw and refresh the screen gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, ship_bullets, alien_bullets, play_button)
def __init__(self, ai_settings): self.ai_settings = ai_settings self.reset_stats() self.game_active = False self.high_score = gf.read_high_score()