def run_game(): """ Initialize pygame, settings and screen objects.""" pygame.init() # Initialize the background setting that Pygame needs. ai_settings = Settings() # Create an instance of Settings. screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) # Create a display window called screen(screen object is a surface). # Argument (1200, 800) is a tuple defining the dimensions # of the game window. pygame.display.set_caption('Alien Invasion') # Make a play button play_button = Button(ai_settings, screen, 'Play') # Make a ship. ship = Ship(ai_settings, screen) # Create a group to store a fleet of alien ships. aliens = Group() gf.create_fleet(ai_settings, screen, ship, aliens) # Create a group to store bullets in. bullets = Group() # Create an instance of GameStats to store game statistics stats = GameStats(ai_settings) # Load high score to stats gf.open_high_score_file_read(ai_settings, stats) # Score object scoreboard = ScoreBoard(ai_settings, screen, stats) # Start the main loop for the game. while True: # Check for events. gf.check_events(ai_settings, screen, stats, play_button, scoreboard, ship, aliens, bullets) if stats.game_active: # Update ship's movement. ship.update() # Update bullets. # If a fleet of alien has been destroy, # delete all remaining bullets and create a new alien fleet gf.bullets_update(ai_settings, screen, stats, scoreboard, ship, aliens, bullets) # Update aliens and look for ship-alien collision. gf.aliens_update(ai_settings, screen, stats, scoreboard, ship, aliens, bullets) # Update the screen. gf.update_screen(ai_settings, screen, stats, play_button, scoreboard, ship, aliens, bullets)
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') #Record game stas stats = Stats(ai_settings) #Build a ship ship = Ship(ai_settings, screen) #Build bullets group bullets = Group() #Build aliens group aliens = Group() gf.create_fleet(ai_settings, aliens, screen) #create play button play_button = Button(ai_settings, screen, "PLAY") score_button = Game_Score(ai_settings, screen) while True: gf.check_events(ai_settings, aliens, bullets, play_button, screen, ship, stats) if stats.game_active: #Check if collision happened gf.bullets_update(ai_settings, aliens, bullets, screen, stats) gf.aliens_ship_update(ai_settings, aliens, bullets, screen, ship, stats) ship.update() gf.aliens_update(ai_settings, aliens, bullets, screen, ship, stats) gf.update_screen(ai_settings, aliens, bullets, play_button, score_button, screen, ship, stats)
def run_game(): # Initialize and set up screen. pygame_1.init();# initializing background settings that pygame needs to work ai_settings = Settings(); screen = pygame_1.display.set_mode((ai_settings.screen_width, \ ai_settings.screen_height)); # calling pygame.display.set_mode() \ # to create display window called screen on which we will all the \ #graphical elements. We provide the window dimensions. pygame_1.display.set_caption("Alien Invasion"); # set window caption #Make as ship ship = Ship(ai_settings, screen); bullets = Group(); #Start main loop. This is a while loop that contains an event loop. \ #There is a for loop inside the while loop. This for loop is the event loop.\ #The event loop listens for an event. Pressing a key, or moving the mouse is \ #called an event. while True: # Start event loop. gf.check_events(ai_settings, screen, ship, bullets);# we put the event loop inside this function ship.update(); # calling the update function to set movement of ship. bullets.update(); gf.update_screen(ai_settings, screen, ship, bullets);# we put then screen related \ #functions inside this function. gf.bullets_update(bullets, ai_settings)
def run_game(): #функция подключает pygame, настройки, создает экран, инициализирует все модули и запускает основной цикл игры pygame.init() #определяет настройки nlo_settings = Settings() #определяет экран screen = pygame.display.set_mode( (nlo_settings.screen_width, nlo_settings.screen_height)) #создает название pygame.display.set_caption("N L O") #создание корабля korabl = Korabl(nlo_settings, screen) #создание щита sfera = Sfera(nlo_settings, screen, korabl) #изображение fon = pygame.image.load('images/fon.png') #группа для хранения пуль pyli = Group() #группа для хранения врагов enemies = Enemies(nlo_settings, screen) #группа для хранения пуль врагов bullets = Group() #группа для хранения жизней корабля all_lifes = Group() #создание трех жизней gf.all_lifes(screen, all_lifes, nlo_settings) #создание надписи приветствия welcome = Game_over(screen, 'WELCOME') #создание кнопки Play button_play = Button(nlo_settings, screen, 'Play') #создание надписи при проигрыше game_over = Game_over(screen, 'GAME OVER') #создание надписи при выигрыше you_win = Game_over(screen, 'CONGRATULATIONS!') #создание кнопки повтора игры try_again = Button(nlo_settings, screen, 'Try again') #основной цикл игры while True: #выводит фоновое изображение на экран screen.blit(fon, (0, 0)) #проверяет все события (нажатия клавиш, флаги и т.д.) gf.check_events(korabl, nlo_settings, screen, pyli, button_play, try_again, all_lifes) #условия для запуска игровых действий if nlo_settings.game_active: if nlo_settings.korabl_view: #обновления всех функций в зависимости от событий sfera.update() korabl.update() gf.pyli_update(enemies, pyli, sfera, nlo_settings, bullets) gf.life_control(screen, all_lifes, nlo_settings, bullets, korabl) gf.bullets_update(bullets, enemies, nlo_settings, screen, korabl, sfera) gf.enemies_update(enemies, nlo_settings, screen) #обновление экрана gf.update_screen(nlo_settings, screen, korabl, sfera, pyli, enemies, bullets, all_lifes, button_play, game_over, try_again, welcome, you_win)
def run_game(): '''初始化游戏并创建一个屏幕对象''' pygame.init() ai_setting = Settings() screen = pygame.display.set_mode( (ai_setting.screen_width, ai_setting.screen_height)) pygame.display.set_caption(ai_setting.game_title) # 创建一艘飞船 ship = Ship(ai_setting, screen) # 创建一个用于存储外星人的编组 aliens = Group() #创建一个用于存储子弹的编组 bullets = Group() #创建外星人群 gf.create_fleet(ai_setting, screen, aliens) # 创建一个用于存储游戏统计信息的实例 及记分牌 stats = GameStats(ai_setting) sb = Scoreboard(ai_setting, screen, stats) # 创建游戏开始按钮 play_button = Button(ai_setting, screen, 'Play') play_button.test("this is a test") '''开始游戏''' while True: '''监听键盘 鼠标事件''' gf.check_events(ai_setting, stats, sb, screen, ship, aliens, bullets, play_button) if stats.game_active == True: '''飞船移动''' ship.update() '''更新子弹位置''' gf.bullets_update(bullets) '''更新外星人位置''' gf.update_aliens(ai_setting, stats, sb, screen, aliens, bullets, ship) '''让最近绘制的屏幕可见''' gf.update_screen(ai_setting, stats, sb, screen, 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") #创建GameStats实例用于跟踪统计信息 stats = GameStats(ai_settings) #创建一艘飞船 ship = Ship(ai_settings,screen,) #创建一个编组存储子弹 bullets = Group() #创建一个外星人 aliens = Group() #生成外星人编组 gf.creat_fleet(ai_settings, screen, aliens, ship) #创建开始按钮 play_button = Button( ai_settings, screen, 'play') #创建记分牌 score = ScoreBoard(screen, ai_settings, stats) #开始游戏的主循环 while True: #监视键盘和鼠标事件 gf.check_events(score,ai_settings, screen, ship, bullets, stats, play_button,aliens) # 游戏活跃时更新飞船与子弹 if stats.game_active == 1: ship.update() gf.bullets_update(bullets,aliens,ai_settings, screen, ship, stats, score) gf.aliens_update(ai_settings,aliens, ship, screen,stats,bullets,score) # 每次循环重新绘制屏幕,保存最近绘制的屏幕可见 gf.screen_update(ai_settings, screen, ship, aliens, bullets,stats, play_button, score)
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') # 创建play按钮 play_button = Button(ai_settings, screen, 'play') # 用于存储游戏统计信息的实例 stats = Game_stats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) ship = Ship(ai_settings, screen) bullets = Group() aliens = Group() # 创建外星人群 gf.creat_fleet(ai_settings, screen, ship, aliens) # 开始游戏的主循环 while True: # 监视键盘和鼠标事件 gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) if stats.game_active: # 每次循环时重绘屏幕 ship.update() gf.bullets_update(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_aliens(ai_settings, stats, sb, screen, ship, aliens, bullets) gf.screen_update(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button) sb.show_score() else: gf.screen_update(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button)