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('陆小宝打怪兽!') # 创建Play按钮 play_button = Button(ai_settings, screen, 'Play') # 创建一个用于存储游戏统计信息的实例 stats = GameStats(ai_settings) # 创建一艘飞船,一个子弹编组,和一个外星人编组 ship = Ship(ai_settings, screen) bullets = Group() aliens = Group() #创建外星人群 gf.create_fleet(ai_settings, screen, ship, aliens) #开始游戏的主循环 while True: #监视键盘和鼠标事件 gf.check_events(ai_settings, screen, stats, play_button, ship, bullets) if stats.game_active: ship.update() gf.update_bullets(ai_settings, screen, ship, aliens, bullets) gf.update_alien(ai_settings, stats, screen, ship, aliens, bullets) gf.update_screen(ai_settings, screen, stats, ship, aliens, bullets, play_button)
def run_game(): """初始化pygame、设置和屏幕""" pygame.init() gui_setting = Settings() screen = pygame.display.set_mode( (gui_setting.screen_width, gui_setting.screen_height)) pygame.display.set_caption("Alien Invasion") play_button = Button(gui_setting, screen, "PLAY") stats = GameStats(gui_setting) sb = ScoreBoard(gui_setting, screen, stats) # 创建飞船、子弹、外星人 ship = Ship(screen, gui_setting) bullets = Group() aliens = Group() # 创建一群外星人 gf.creat_aliens(gui_setting, screen, aliens) # 开始游戏主循环 while True: gf.check_events(gui_setting, screen, ship, bullets, stats, play_button, aliens, sb) if stats.game_active == True: ship.update() gf.update_bullets(gui_setting, screen, bullets, aliens, sb, stats) gf.update_alien(gui_setting, stats, screen, ship, aliens, bullets, sb) gf.update_screen(gui_setting.bg_color, gui_setting, screen, stats, ship, bullets, aliens, play_button, sb)
def run_game(): # Initialize game and create a screen object. pygame.init() settings = Settings() screen = pygame.display.set_mode( (settings.screen_width, settings.screen_height)) pygame.display.set_caption("Alien Invasion") Shiper = ship(settings, screen) alien = Alien(settings, screen) bullets = Group() aliens = Group() stats = GameStats(settings) gf.create_fleet(settings, screen, aliens) play_button = Button(settings, screen, "Play") while True: gf.check_events(settings, screen, stats, play_button, Shiper, aliens, bullets) if stats.game_active: Shiper.update() gf.update_bullets(settings, screen, ship, aliens, bullets, stats) gf.update_alien(settings, stats, screen, Shiper, aliens, bullets) else: pygame.display.set_caption("Game Over") gf.update_screen(settings, screen, Shiper, aliens, bullets, stats, play_button)
def run_game(): #init游戏并创建一个窗口对象 pygame.init() ai_settings=Settings()#创建Settings类的实例 screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height)) pygame.display.set_caption("地球保卫战 v1.0") #创建实例 sscol=Group() stone=Stone(screen) stats=GameStats(ai_settings) bullets=Group() ship=Ship(ai_settings,screen) sscol.add(ship) aliens=Group() button=Button(ai_settings,screen,"Play") score=Score(ai_settings,screen,stats) while True: #帧数 pygame.time.Clock().tick(120) #监视键盘和鼠标事件 func.check_events(ai_settings,screen,ship,aliens,bullets,button,stats,score) #决定游戏是否开始 if stats.game_status: ship.update() func.release_bullet(ai_settings,bullets,screen,aliens,stats,score) func.update_alien(ai_settings,screen,aliens,ship,stats,bullets,score,stone,sscol) #每次循环都重绘屏幕 func.update_screen(ai_settings,screen,ship,bullets,aliens,stats,button,score,stone)
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.capton) ship = Ship(ai_setting, screen) bullets_list = Group() alien_list = Group() play_button = Button(ai_setting, screen, 'Play') stats = GameStats(ai_setting) sb = Scoreboard(ai_setting, screen, stats) # 开始游戏的主循环 # 创建外星人群 gf.create_fleet(ai_setting, screen, ship, alien_list) while True: # 监视键盘和鼠标事件 gf.check_events(ai_setting, screen, stats, play_button, ship, alien_list, bullets_list) # 键盘移动更新图像位置 if stats.game_active: ship.update() gf.update_bullets(ai_setting, screen, stats, sb, ship, alien_list, bullets_list) gf.update_alien(ai_setting, stats, screen, ship, alien_list, bullets_list) # 更新屏幕上的图像,切换到新屏幕 gf.update_screen(ai_setting, screen, stats, sb, ship, alien_list, bullets_list, play_button)
def run_game(): #initialize game and create 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") ship = Ship(ai_settings, screen) #Make a group to store bullets in . bullets = Group() aliens = Group() stars = Group() gf.create_fleet(ai_settings, screen, ship, aliens) #start the main loop for the run_game while True: #Watch for keyboard and mouse events . gf.check_events(ai_settings, screen, ship, bullets) ship.update() gf.create_star(ai_settings, screen, stars) gf.update_star(stars) gf.update_alien(ai_settings, aliens) gf.update_bullets(bullets) gf.update_screen(ai_settings, screen, ship, aliens, bullets, stars)
def run_game(): pygame.init() ai_settings = Settings() screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) ship = Ship(ai_settings, screen) bullets = Group() aliens = Group() # 创建外星人群 gf.create_fleet(ai_settings, screen, ship, aliens) pygame.display.set_caption("Alien Invasion") # 创建一个用于存储游戏统计信息实例 stats = GameStates(ai_settings) # 创建Play按钮 play_button = Button(ai_settings, screen, "Play") while True: gf.check_events(ai_settings, screen, stats, play_button, ship, aliens, bullets) if stats.game_active: gf.update_bullets(ai_settings, screen, ship, aliens, bullets) gf.update_alien(ai_settings, stats, screen, ship, aliens, bullets) gf.check_events(ai_settings, screen, stats, play_button, ship, aliens, bullets) gf.update_screen(ai_settings, screen, stats, ship, aliens, bullets, play_button)
def run_game(): # Initialize game and create a screen object. pygame.init() ai_settings = Settings() screen = pygame.display.set_mode((ai_settings.width, ai_settings.height)) ship = Ship(ai_settings, screen) pygame.display.set_caption("For The True Emperor!") play_button = Button(ai_settings, screen, "Play") stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) bullets = Group() aliens = Group() gf.create_fleet(ai_settings, screen, aliens, ship) # Start the main loop for the game. while True: # Watch for keyboard and mouse events. gf.check_events(ai_settings, screen, stats, play_button, sb, ship, aliens, bullets) if stats.game_active: ship.update() gf.update_bullets(ai_settings, screen, stats, sb, ship, bullets, aliens) gf.update_alien(ai_settings, stats, screen, ship, aliens, bullets) gf.update_screen(screen, ai_settings, sb, ship, stats, bullets, aliens, play_button) ship.blitme() ship.update() # Make the most recently drawn screen visible. pygame.display.flip()
def run_game(): # 初始化游戏,创建一个屏幕对象,设置其屏幕属性 pygame.init() make_settings = Settings() screen = pygame.display.set_mode( (make_settings.screen_width, make_settings.screen_height)) pygame.display.set_caption('Alien Invasion') # 创建一艘飞船实例 ship = Ship(make_settings, screen) # 将飞船置于下方中间 ship.ship_center() # 创建一个用于存储统计信息的实例 stats = GameStats(make_settings) # 创建一个Group类的实例,并将其命名为bullet,就是子弹组 bullets = Group() # 创建一个实例,外星人组 aliens = Group() # 在一行中创建多个外星人 gf.create_fleets(make_settings, screen, ship, aliens) # 开始游戏的主循环 while True: # 监视键盘和鼠标事件 gf.check_event(make_settings, screen, ship, bullets) if stats.game_activity: gf.update_bullets(make_settings, screen, ship, bullets, aliens) gf.update_alien(make_settings, screen, stats, ship, bullets, aliens) # 每次循环都重新绘制更新背景屏幕,并将屏幕显示出来 gf.update_screen(make_settings, screen, ship, aliens, bullets)
def run_game(): pygame.init() game_settings = Settings() screen = pygame.display.set_mode( (game_settings.screen_width, game_settings.screen_height)) pygame.display.set_caption("Alien Invasion") ship = Ship(screen, game_settings) bullets = Group() aliens = Group() gf.create_fleet(aliens, screen, game_settings, ship) stats = Game_Stats(game_settings) play_button = Button(screen, "PLAY") sb = Scoreboard(game_settings, screen, stats) while True: gf.check_events(ship, bullets, screen, game_settings, stats, play_button, aliens, sb) if stats.game_active: ship.update() bullets.update() gf.update_bullets(bullets, aliens, screen, game_settings, ship, stats, sb) gf.update_alien(aliens, ship, bullets, game_settings, stats, screen, sb) gf.check_fleet_edges(game_settings, aliens) gf.update_screen(game_settings, ship, screen, bullets, aliens, stats, play_button, sb)
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("Pick the stars") people = People(ai_settings, screen) stars = Stars(ai_settings, screen) alien = Alien(ai_settings, screen) bullets = Group() stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) play_button = Button(ai_settings, screen, "Play") while True: gf.check_events(ai_settings, stats, sb, people, alien, bullets, play_button) bullets.update() for bullet in bullets.copy(): if bullet.rect.bottom >= ai_settings.screen_height: bullets.remove(bullet) if stats.game_active: people.update() gf.update_alien(alien) gf.update_stars(ai_settings, stats, sb, people, stars) if alien.rect.x % 120 == 0: gf.update_bullet(ai_settings, stats, screen, people, alien, bullets) gf.update_screen(ai_settings, stats, sb, screen, people, stars, alien, 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") # 创建Play按钮 play_button = Button(ai_settings, screen, "Play") # 创建一艘飞船,一个子弹编组和一个外星人编组 ship = Ship(ai_settings, screen) # 创建一个用于存储子弹的编组 bullets = Group() aliens = Group() # 创建外星人群 gf.creat_fleet(ai_settings, screen, ship, aliens) #设置背景色 bg_colar = (230, 230, 230) #开始游戏的主循环 #创建一个外星人 #alien=Ailen(ai_settings,screen) # 创建一个用于存储游戏统计信息的实例 stats = GameStats(ai_settings) # 创建存储游戏统计信息的实例,并创建计分牌 sb = Scoreboard(ai_settings, screen, stats) while True: # 监视键盘和鼠标事件 # gf.check_events(ship) gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) if stats.game_active: ship.update() #让最近绘制的屏幕可见 bullets.update() # 删除已消除的子弹 gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_alien(ai_settings, screen, stats, sb, ship, aliens, bullets) # gf.update_screen(ai_settings,screen,ship,alien,bullets) print(len(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") #创建Play按钮 play_button = Button(ai_settings, screen, "Play") #创建一个用于存储游戏统计信息的实例 stats = GameStates(ai_settings) sb = Scoreboard(ai_settings, screen, stats) #创建一艘飞船 ship = Ship(ai_settings, screen) #创造一个用于存储子弹的编组 bullets = Group() aliens = Group() #创建外星人群 gf.create_fleet(ai_settings, screen, ship, aliens) bg_color = (230, 230, 230) #alien = Alien(ai_settings,screen) #开始游戏的主循环 while True: #监视键盘和鼠标事件 gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) if stats.ship_left > 0: ship.update() gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_alien(ai_settings, screen, stats, sb, ship, aliens, bullets) #print(len(bullets)) gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button) #让最近绘制的屏幕可见 pygame.display.flip()
def run_game(): #初始化pygame、设置和屏幕对象 pygame.init() #初始化背景设置 ai_settings = Settings() #创建窗口设置的实例,下方再调用它 screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) #显示窗口,名为screen pygame.display.set_caption("Alien Invasion") play_button = Button(ai_settings, screen, "play") stats = GameStats(ai_settings) #创建一个统计游戏信息的stats实例 sb = ScoreBoard(ai_settings, screen, stats) #创建记分牌实例 #创建一艘飞船 ship = Ship(ai_settings, screen) #提供screen实参,表示将在screen上绘制飞船 #创建一个用于存储子弹的编组 bullets = Group() #创建一个外星人空的编组 aliens = Group() #创建外星人群 gf.creat_fleet(ai_settings, stats, screen, ship, aliens) #开始游戏的主循环 while True: #开始监视鼠标和键盘事件 gf.check_event(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) if stats.game_active: #调用飞船移动位置坐标更新的方法 ship.update() bullets.update() #删除已消失的子弹 gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) #更新外星人的坐标位置 gf.update_alien(ai_settings, stats, screen, sb, ship, aliens, bullets) #更新屏幕,包括screen和ship 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") ship = Ship(screen, ai_settings) bullets = Group() aliens = Group() gf.create_fleet(ai_settings, screen, ship, aliens) while True: gf.check_events(ai_settings, screen, ship, bullets) ship.update() gf.update_bullets(bullets, aliens) gf.update_alien(ai_settings, aliens) gf.update_screen(ai_settings, screen, ship, bullets, aliens)
def run_game(): """ Initialize Game and Create a Screen Object """ # Setting Object game_setting = Settings() screen = pg.display.set_mode((game_setting.screen_width, game_setting.screen_height)) pg.display.set_caption("Alien Invasion") #Make Play Button playButton = Button(game_setting, screen, 'Play') #Create an Instance to store game statistics stats = Game_stats(game_setting) #Creating Instance of ScoreBoard sb = Scoreboard(game_setting, screen, stats) #Make a Ship ship = Ship(game_setting, screen) bullets = Group() aliens = Group() #Background bg = pg.image.load('./images/bg.png') # #Set Background color # bg_color = game_setting.bg_color gf.create_fleet(game_setting, screen, ship, aliens) while True: "Main Game Loop" # Keyboard and Mouse Events gf.check_events(game_setting, screen, stats, sb, ship, aliens, bullets, playButton) if stats.game_active: ship.update() gf.update_bullets(game_setting, screen, stats, sb, ship, aliens, bullets) gf.update_alien(game_setting, stats, screen, sb, ship, aliens, bullets) gf.update_screen(game_setting, screen, stats, sb, ship, aliens, bullets, bg, playButton)
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') #创建唯一一个保存游戏统计信息的实例 stats = GameStats(ai_settings) #创建记分牌 sb = Scoreboard(ai_settings, screen, stats) #创建飞船 ship = Ship(ai_settings, screen) #创建一个管理bullet的group bullets = Group() #创建一个管理alien的group aliens = Group() #创建外星人舰队 gf.creat_fleet(ai_settings, screen, ship, aliens) #创建按钮 play_button = Button(ai_settings, screen, 'Play') #开始游戏的主循环 while True: #事件监视 gf.check_events(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button) if stats.game_active: # 更新飞船位置 ship.update() # 更新子弹 gf.update_bullets(ai_settings, screen, stats, sb, bullets, ship, aliens) # 更新外星人位置 gf.update_alien(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() 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 = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) # 创建一艘飞船 ship = Ship(ai_settings, screen) # 创建一个用于存储子弹的编组 bullets = Group() # 创建一个外星人编组 aliens = Group() # alien = Alien(ai_settings, screen) # 创建外星人群 gf.create_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 == True: ship.update() gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_alien(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() my_game_setting = GameSettings() screen = pygame.display.set_mode( (my_game_setting.screen_width, my_game_setting.screen_height)) my_ship = Ship(my_game_setting, screen) pygame.display.set_caption("MyGame") # 设置背景颜色 bg_color = my_game_setting.bg_color # 创建子弹集合 bullets = Group() aliens = Group() gf.create_fleet(my_game_setting, screen, aliens, my_ship) # game loop while True: gf.check_events(my_ship, my_game_setting, screen, bullets) my_ship.update() gf.update_bullet(aliens, bullets) gf.update_alien(my_game_setting, aliens) gf.update_screen(my_game_setting, screen, my_ship, bullets, aliens)
def run_game(): # 初始化pygame、设置和屏幕对象 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 = GameStats(ai_settings) # 创建一艘飞船 ship = Ship(ai_settings, screen) # 创建以个用于储存子弹的编组 bullets = Group() # Group 是创建一个类似列表的,里面可以装子弹的实例 # 创建一个外星人 alien = Alien(ai_settings, screen) # 创建一个外星人编组 aliens = Group() # 创建外星人群 gf.create_fleet(ai_settings, screen, ship, aliens) while True: # 导入game_function的检查函数函数 gf.check_events(ai_settings, screen, stats, play_button, ship, bullets) if stats.game_active: # 更新飞船最新位置 ship.update() # 更新子弹最新位置,并删除过期子弹 gf.update_bullets(ai_settings, screen, ship, aliens, bullets) # 更新外星人的位置 gf.update_alien(ai_settings, stats, screen, ship, aliens, bullets) # 调用gf的update_screen方法,在屏幕绘出图像 gf.update_screen(ai_settings, screen, stats, ship, aliens, bullets, play_button)
def run_game(): pygame.init() print("start") ai_settings = Settings() screen = pygame.display.set_mode(ai_settings.screen_size) pygame.display.set_caption("Alien Invasion") #创建一艘飞船 ship = Ship(ai_settings, screen) #创建一个用于存储子弹的编组 bullets = Group() #创建外星人 aliens = Group() gf.creat_fleet(ai_settings, screen, aliens, ship) status = Gs(ai_settings) while (True): gf.check_events(ai_settings, screen, ship, bullets) if status.game_active: gf.update_bullets(ai_settings, screen, aliens, ship, bullets) gf.update_alien(ai_settings, status, screen, ship, aliens, bullets) gf.update_screen(ai_settings, screen, ship, bullets, aliens)
def run_game(): #Initialize the game and create the screen object. pygame.init() ai_settings = Settings() screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Star Chaser") clock = pygame.time.Clock() #Make the character nova = Star_Character(ai_settings, screen) #make bullet group to store bullets bullets = Group() alien_1_group = Group() #gf.create_fleet(ai_settings,screen,alien_1_group) #Set the background image bg_color = (255, 255, 255) alien_1 = Alien1(ai_settings, screen) #Start the main loop for the game. while True: gf.check_events(ai_settings, screen, nova, bullets) nova.update() gf.update_bullets(bullets) gf.update_alien(ai_settings, alien_1_group) gf.update_screen(ai_settings, screen, nova, alien_1, 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") #创建Play按钮 play_button = Button(ai_settings, screen, "Play") #创建一个用于存储游戏统计信息的实例,并创建记分牌 stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) #设置背景颜色 bg_color = (230, 230, 230) #创建一艘飞船,一个子弹编组和一个外星人编组 ship = Ship(ai_settings, screen) bullets = Group() aliens = Group() #创建外星人群 gf.create_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.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_alien(ai_settings, stats, sb, screen, ship, aliens, bullets) gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button)
def run_game(): #初始化pycharm,设置,屏幕对象 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 = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) #创建一艘飞船 子弹 外星人的编组 ship = Ship(ai_settings, screen) bullets = Group() aliens = Group() # 创建一个外星人qun gf.create_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.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) # print(len(bullets)) gf.update_alien(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_setting = Setting() screen = pygame.display.set_mode( (ai_setting.screen_width, ai_setting.screen_height)) pygame.display.set_caption("Alien invansion") #ship ship = Ship(screen, ai_setting) #make bullets bullets = Group() #make an alien alien = Group() gf.create_alien_fleet(ai_setting, screen, alien, ship) #stats stats = GameStats(ai_setting) sb = Scoreboard(ai_setting, screen, stats) #botton play_botton = Botton(screen, ai_setting, "play") #GameOver gameover = GameOver(screen, ai_setting) while True: gf.check_events(ai_setting, screen, ship, bullets, play_botton, stats, alien) if stats.game_active: ship.update() bullets.update() gf.update_bullets(bullets, alien, ai_setting, screen, ship, stats, sb) gf.update_alien(ai_setting, stats, screen, ship, alien, bullets) gf.update_screen(ai_setting, screen, ship, bullets, alien, stats, gameover, play_botton, sb)
def run_game(): #游戏初始化 pygame.init() # 初始化混音器模块 pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=512) #创建屏幕对象 ai_settings = Settings() # 创建一个用于存储游戏统计信息的实例 stats = GameStats(ai_settings) screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption(('奥特曼之保卫地球')) # 添加音效 pygame.mixer.music.load('sound/bgm.mp3') # loops = -1,表示无限重复播放 pygame.mixer.music.play(-1) # 创建Play按钮 play_button = Button(ai_settings, screen, 'Play') # # 创建GameOver # GameOver_button = Button(ai_settings, screen, 'Game Over!') # 创建飞船 ship = Ship(ai_settings, screen) # 创建子弹组 bullets = Group() # 创建冲击波组 impacts = Group() # 创建激光 laser = Group() laser.add(Laser(ai_settings, screen)) # 创建敌人 aliens = Group() # 创建爆炸 explosions = [Explosion(ai_settings, screen) for _ in range(20)] # 创建一个时间对象,设置帧率为 200 fps = 150 Game_clock = pygame.time.Clock() # 开始游戏主循环 while True: gf.check_events(ai_settings, screen, stats, play_button, ship, aliens, bullets, impacts) if ship.hp <= 0: pygame.mouse.set_visible(True) stats.game_active = False ai_settings.speed_reset() ai_settings.speedchange() if stats.game_active: stats.reset_stats() if stats.game_active: if len(aliens) == 0: ai_settings.speedup() ai_settings.speedchange() gf.create_fleet(ai_settings, screen, ship, aliens) ship.update() hit = gf.update_alien(ai_settings, ship, aliens) if hit: aliens.empty() continue gf.update_impact(ai_settings, stats, aliens, impacts, explosions) gf.update_laser(ai_settings, stats, laser, ship, aliens, explosions) gf.update_bullets(ai_settings, stats, aliens, bullets, explosions) gf.update_explosion(explosions) # 调用Clock()类创建的对象中的tick()函数 Game_clock.tick(fps) gf.update_screen(ai_settings, screen, stats, ship, aliens, bullets, laser, impacts, explosions, play_button)