def run_game(): """Initialize game and create a screen object.""" pygame.init() si_settings = Settings() screen = pygame.display.set_mode( (si_settings.screen_width, si_settings.screen_height)) pygame.display.set_caption("Space invaders") frame_number = 0 time_to_next_bullet = 100 stats = GameStats(si_settings) clock = Clock() scoreboard = Scoreboard(si_settings, screen, stats) # make the play button play_button = Button(si_settings, screen, "Play") # Make a ship, bullets and aliens ship = Ship(si_settings, screen) bullets = Group() aliens = Group() alien_bullets = Group() # calculate star positions stars = [] gf.star_field(si_settings, stars) gf.create_fleet(si_settings, screen, ship, aliens) #load high scores stats.load_highscore() # Start mainloop for the game. while True: gf.check_events(si_settings, screen, ship, bullets, stats, play_button, scoreboard) if stats.game_active: frame_number = gf.frame_counter(frame_number) ship.update() gf.update_bullets(si_settings, screen, ship, aliens, bullets, stats, scoreboard) gf.update_aliens(aliens, si_settings, ship, stats, screen, bullets, alien_bullets, scoreboard) if frame_number == time_to_next_bullet: time_to_next_bullet = gf.fire_alien_bullet( si_settings, aliens, alien_bullets, screen) frame_number = 0 gf.update_alien_bullets(alien_bullets, si_settings, ship, stats, screen, aliens, bullets, scoreboard) gf.update_screen(si_settings, screen, ship, aliens, bullets, stars, alien_bullets, play_button, stats, scoreboard) clock.tick(si_settings.max_frames_sec)
def run_game(): # Initialize pygame, settings and 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") #Make a ship, a group of bullets, a group of alien bullets and a group of aliens ship = Ship(ai_settings, screen) bullets = Group() long_bullets = Group() alien_bullets = Group() aliens = Group() health = Group() shield = Group() #Create an instance to store game statistics and create a scoreboard stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats, ship) #Create the fleet of aliens gf.create_fleet(ai_settings, screen, ship, aliens) # Start the main loop for the game. while True: gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets, alien_bullets, long_bullets, health, shield) if stats.game_active: ship.update() gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets, long_bullets) gf.update_long_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets, long_bullets) gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_alien_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets, alien_bullets, long_bullets) gf.update_health(ai_settings, screen, stats, sb, ship, health) gf.update_shield(ai_settings, screen, stats, ship, shield) gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, alien_bullets, play_button, long_bullets, health, shield)
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") #make a ship ship = Ship(ai_settings, screen) #make an alien aliens = Group() #gf.create_fleet(ai_settings, screen, aliens, ship) #make bullet sprites group bullets = Group() #create alien bullet group alien_bullets = Group() #make screen background background = Background(screen) #add music to the game music = Music() #start play music.start_play() #create statics stats = GameStats(ai_settings) stats.reset_stats() with open("highest_score.txt", 'r') as hs: highestscore = hs.readline() stats.highest_score = int(highestscore) #create play button play_button = Button(screen, "Play") #initlize score board score_board = ScoreBoard(screen, stats, ai_settings) #Start the main loop for the game. while True: #watch for keyboard and mouse events. gf.check_events(ai_settings, screen, ship, bullets, play_button, stats, aliens, score_board, alien_bullets) if stats.game_active: gf.update_ship(ship) gf.update_bullets(bullets, aliens, ai_settings, ship, screen, stats, score_board, alien_bullets) gf.update_alien_bullets(alien_bullets, ship, stats, aliens, bullets, screen, ai_settings, score_board) gf.update_aliens(aliens, ai_settings, ship, stats, bullets, screen, score_board, alien_bullets) gf.update_screen(ai_settings, screen, ship, bullets, background, aliens, play_button, stats, score_board, alien_bullets)
def run_game(): # Initialize pygame, settings, and 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, a group of alienbullets, and a group of aliens. ship = Ship(ai_settings, screen) alien_bullets = Group() bullets = Group() aliens = Group() # Create the fleet of aliens. gf.create_fleet(ai_settings, screen, ship, aliens) # Initialize the time (used for timing alien bullets) t = time.time() # Start the main loop for the game. while True: gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets, alien_bullets) if stats.game_active: ship.update() gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets, alien_bullets) gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets, alien_bullets) gf.update_alien_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets, alien_bullets) # Check the time to see if alien bullet should be fired if time.time() - ai_settings.alien_bullet_time_gap > t: gf.fire_alien_bullet(ai_settings, screen, aliens, alien_bullets) t = time.time() gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, 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)) background = pygame.image.load('images/space.bmp').convert() 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_bullets = Group() while True: gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets, alien_bullets) if stats.game_active: gf.create_fleet(ai_settings, screen, aliens) gf.create_alien_bullet(ai_settings, screen, aliens, ship, alien_bullets) ship.update() bullets.update() alien_bullets.update() gf.update_bullet(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_aliens(ai_settings, stats, sb, screen, ship, aliens, bullets, alien_bullets) gf.update_alien_bullets(ai_settings, stats, sb, screen, ship, aliens, bullets, alien_bullets) gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button, background, alien_bullets)
def run_game(): # initialize game, create screen object, group of bullets, and group of aliens 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_button = butt.Button(ai_settings, screen, "Normal") mode_button = butt.ModeButton(ai_settings, screen, "Highscores") stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) ship = Ship(ai_settings, screen) bullets = Group() alien_bullets = Group() aliens = Group() bunkers = Group() bonus = Group() explosions = Group() gf.create_fleet(ai_settings, screen, stats, sb, ship, aliens, alien_bullets, explosions) # fleet gf.create_bunkers(ai_settings, bunkers) # bunkers bonus_tic = randrange(0, 1000) # Main loop for game while True: # Listen for user activity, and input all data. gf is a # file alias # tic.increment_tic() gf.check_events(ai_settings, screen, stats, play_button, mode_button, sb, ship, bullets, aliens, alien_bullets, bunkers, bonus, explosions) if stats.game_active: # put things in motion if bonus_tic > 10500: # spawn bonus gf.create_bonus(ai_settings, screen, stats, sb, bullets, bonus, explosions) bonus_tic = randrange(0, 1000) bonus_tic += 1 ship.update() gf.update_bullets(ai_settings, screen, stats, sb, ship, bullets, aliens, alien_bullets, bunkers, bonus, explosions) gf.update_alien_bullets(ai_settings, stats, ship, alien_bullets, bunkers) gf.update_aliens(ai_settings, stats, screen, ship, aliens, bonus) gf.explosion_update(explosions) else: file = open('scores.txt', 'w') check = 0 while check != 10: file.writelines(str(stats.high_score[check])) file.writelines('\n') check += 1 file.close() gf.update_screen(ai_settings, screen, stats, play_button, mode_button, sb, ship, bullets, aliens, alien_bullets, bunkers, bonus, explosions)
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) # 创建一个用于储存子弹的编组 ship_bullets = pygame.sprite.Group() # 创建一个外星人编组 aliens = pygame.sprite.Group() # 创建一组道具 items = pygame.sprite.Group() # 创建一个用于储存游戏统计信息的对象 stats = Game_stats(ai_settings) # 创建记分牌 sb = Scoreboard(ai_settings, screen, stats) # 创建外星人群 stats.create_alien_time = time() gf.create_fleet(ai_settings, screen, stats, aliens) # 开始游戏主循环 while True: # 监视键盘和鼠标事件 gf.check_events(ai_settings, screen, stats, play_button, ship, aliens, ship_bullets, items) if stats.game_active: # 更新状态 ship.update() gf.update_ship_bullets(ai_settings, screen, stats, sb, ship, aliens, ship_bullets, items) gf.update_alien_bullets(ai_settings, stats, ship, aliens) gf.update_items(ai_settings, screen, stats, ship, items) gf.update_aliens(ai_settings, screen, stats, ship, aliens, ship_bullets) gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, ship_bullets, play_button, items)
def run_game(): """initialize pygame, settings, and screen object""" pygame.init() #store Settings ai_settings = Settings() #setup screen screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") #play button play_button = Button(ai_settings, screen, "Play") stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) #make a ship, bullets and aliens ship = Ship(ai_settings, screen) bullets = Group() aliens = Group() alien_bullets = Group() #create alien fleet gf.create_fleet(ai_settings, screen, ship, aliens) #start main loop of game while True: #look for keyboard events gf.check_events(ai_settings, screen, stats, play_button, sb, ship, aliens, bullets, alien_bullets) if stats.game_active: #move the ship ship.update() #move/create bullets gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) gf.update_alien_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets, alien_bullets) #move/destroy aliens gf.update_aliens(ai_settings, stats, screen, sb, ship, aliens, bullets, alien_bullets) #draw new screen with changes gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, alien_bullets, play_button)
def run_game(): #Initialize game and make a screen object pygame.init() sounds.playsound('theme1') infrompy_settings = Settings() screen = pygame.display.set_mode( (infrompy_settings.screen_width, infrompy_settings.screen_height)) screenRect = screen.get_rect() pygame.display.set_caption("Invaders") background = Background(infrompy_settings, screen) red_screen = Red_Screen(infrompy_settings, screen) # Make play button and replay button play_button = Button(infrompy_settings, screen, "Play") play_again_button = Button(infrompy_settings, screen, "Your ship ded lol. Play Again ?") # Make an instance to store game stats stats = GameStats(infrompy_settings) # Make a ship, group of bullets and group of aliens ship = Ship(infrompy_settings, screen) ship_explosions = Group() bullets = Group() bullet_explosions = Group() aliens = Group() alien_explosions = Group() alien_bullets = Group() alien_bullet_explosions = Group() background = Background(infrompy_settings, screen) # Level board info_board = Info_Board(infrompy_settings, screen) # Bullets group gf.create_fleet(infrompy_settings, screen, ship, aliens) while True: background.blitme() gf.check_events(infrompy_settings, screen, ship, bullets, bullet_explosions, play_button) if infrompy_settings.game_active: gf.update_aliens(infrompy_settings, aliens, screen, ship, alien_explosions, alien_bullet_explosions, red_screen) gf.update_alien_explosions(aliens, screen, alien_explosions) gf.update_ship(infrompy_settings, screen, ship, ship_explosions) gf.update_ship_explosions(ship, screen, ship_explosions) gf.update_bullet_explosions(aliens, screen, bullets, bullet_explosions) gf.update_bullets(infrompy_settings, aliens, screen, ship, bullets, bullet_explosions, alien_explosions, alien_bullets) gf.update_alien_bullets(infrompy_settings, aliens, screen, ship, alien_bullets, alien_bullet_explosions, red_screen) gf.update_alien_bullet_explosions(aliens, screen, alien_bullet_explosions) gf.update_red_screen(infrompy_settings, red_screen) gf.update_screen(infrompy_settings, screen, ship, ship_explosions, aliens, bullets, bullet_explosions, alien_explosions, alien_bullets, alien_bullet_explosions, info_board, play_button, play_again_button, red_screen)
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("Space Invaders") screen.fill([255, 255, 255]) test = pygame.image.load("images/startup_image.png") screen.blit(test, [0, 0]) pygame.display.flip() high_score = HighScore(screen) main_intro = False score_list_open = False while not main_intro: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: main_intro = True elif event.key == pygame.K_s: main_intro = True score_list_open = True if score_list_open: high_score.scores() pygame.display.flip() while score_list_open: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: score_list_open = False play_button = Button(ai_settings, screen, "Play") # create an instance to store game statistics stats = GameStats(ai_settings) # Create an instance to store game statistics and create a scoreboard. sb = Scoreboard(ai_settings, screen, stats) # make a ship, group of bullets, and a group of aliens ship = Ship(ai_settings, screen) # make a group to store bullets in bullets = Group() alien_bullets = Group() aliens = Group() aliens_b = Group() aliens_c = Group() ufos = Group() bunk = Group() bunker1 = Bunker(screen) bunker1.create_bunker(50, 600) bunk.add(bunker1) bunker2 = Bunker(screen) bunker2.create_bunker(250, 600) bunk.add(bunker2) bunker3 = Bunker(screen) bunker3.create_bunker(450, 600) bunk.add(bunker3) # create the fleet of aliens gf.create_fleet(ai_settings, screen, aliens) gf.create_b_fleet(ai_settings, screen, ship, aliens_b) gf.create_c_fleet(ai_settings, screen, ship, aliens_c) gf.create_ufo(ai_settings, screen, ufos) # start the main loop for the game while True: # watch for keyboard and mouse events gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, aliens_b, aliens_c, bullets, alien_bullets) if stats.game_active: ship.update() gf.random_ufo(ai_settings, screen, ufos) # gf.update_ufo(ufos) gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, aliens_b, aliens_c, bullets) gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens, aliens_b, aliens_c, bullets) gf.update_alien_bullets(ai_settings, screen, stats, sb, ship, alien_bullets) gf.random_alien_shoot(ai_settings, screen, ship, alien_bullets, aliens) gf.check_alien_bullet_ship_collisions(ai_settings, screen, stats, sb, ship, aliens, aliens_b, aliens_c, bullets, alien_bullets) gf.check_bullet_ufo_collisions(ai_settings, screen, stats, sb, bullets, ufos) gf.check_bunker_collisions(bullets, alien_bullets, bunk) if ufos.__len__() > 0: for ufo in ufos.copy(): ufo.move() if ufo.rect.x > 600: ufos.remove(ufo) bullets.update() alien_bullets.update() gf.update_screen(ai_settings, screen, ship, stats, sb, aliens, aliens_b, aliens_c, bullets, play_button, alien_bullets, ufos, bunk)
def run_game(): pygame.mixer.pre_init(44100, -16, 2, 2048) pygame.mixer.init() 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) stats = GameStats(ai_settings) hud = Hud(ai_settings, screen, stats, ship) play_button = Button(screen, "Start") bullets = Group() aliens = Group() alien_bullets = Group() health = Group() ammo = Group() used_shields = Group() bosses = GroupSingle() boss_shields = GroupSingle() clock = pygame.time.Clock() boss_bullets = Group() black_holes = GroupSingle() ai_settings.state = ai_settings.running # Main game cycle. while True: dt = clock.tick() gf.check_events(ai_settings, screen, stats, hud, play_button, ship, aliens, bullets, used_shields) gf.check_keys_pressed(ship) if ai_settings.state == ai_settings.running: if stats.game_active: ship.update() gf.update_ship_shield(ship, alien_bullets, used_shields, boss_bullets) gf.update_bullets(ai_settings, screen, stats, hud, ship, aliens, bullets, alien_bullets, health, ammo, bosses, boss_bullets, boss_shields, black_holes) gf.update_aliens(ai_settings, screen, stats, hud, ship, aliens, bullets, alien_bullets, health, ammo, used_shields) gf.fire_alien_bullets(ai_settings, screen, stats, ship, aliens, alien_bullets, dt) gf.update_alien_bullets(ai_settings, screen, stats, hud, ship, aliens, bullets, alien_bullets, health, ammo, used_shields) if stats.stage == ai_settings.boss_stages[0]: gf.update_green_boss(ai_settings, screen, stats, hud, ship, bullets, used_shields, bosses, boss_bullets, boss_shields, bosses) gf.fire_green_boss_bullets(ai_settings, screen, dt, bosses, boss_bullets) gf.update_green_boss_bullets(ai_settings, screen, stats, hud, ship, bullets, used_shields, bosses, boss_bullets, boss_shields, black_holes) gf.update_green_boss_shield(hud, bullets, boss_shields) elif stats.stage == ai_settings.boss_stages[1]: gf.update_red_boss(ai_settings, screen, stats, hud, ship, bullets, used_shields, bosses, boss_bullets, boss_shields, black_holes) gf.update_red_boss_shield(hud, bullets, boss_shields) gf.fire_red_boss_bullets(ai_settings, screen, ship, dt, bosses, boss_bullets) gf.update_red_boss_bullets(ai_settings, screen, stats, hud, ship, bullets, used_shields, bosses, boss_bullets, boss_shields, black_holes) elif stats.stage == ai_settings.boss_stages[2]: gf.update_blue_boss(ai_settings, screen, stats, hud, ship, bullets, used_shields, bosses, boss_bullets, boss_shields, black_holes) gf.update_blue_boss_shield(hud, bullets, boss_shields) gf.fire_blue_boss_bullets(ai_settings, screen, dt, bosses, boss_bullets) gf.update_blue_boss_bullets(ai_settings, screen, stats, hud, ship, bullets, used_shields, bosses, boss_bullets, boss_shields, black_holes) gf.create_black_hole(ai_settings, screen, ship, dt, black_holes) gf.update_black_hole(ai_settings, screen, stats, hud, ship, bullets, used_shields, dt, bosses, boss_bullets, boss_shields, black_holes) gf.update_ship_health(stats, hud, ship, health) gf.update_ship_ammo(stats, hud, ship, ammo) elif ai_settings.state == ai_settings.paused: pass if ai_settings.state == ai_settings.running: gf.update_screen(ai_settings, screen, stats, hud, ship, aliens, bullets, alien_bullets, play_button, health, ammo, used_shields, dt, bosses, boss_bullets, boss_shields, black_holes) else: pass
def play(self): ai_settings = Settings() screen = pg.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pg.display.set_caption(ai_settings.title) play_button = Button(screen, "Play") score_button = ScoreButton(ai_settings, screen, "High Score") stats = GameStats(ai_settings=ai_settings) sb = Scoreboard(ai_settings=ai_settings, screen=screen, stats=stats) sound = Sound() sound.play() sound.pause_bg() ship = Ship(ai_settings=ai_settings, screen=screen) ships = Group() ships.add(ship) barriers = Group() aliens = Group() bullets = Group() alien_bullets = Group() aliens_list = [] timer = [pg.time.get_ticks()] UFO_object = UFO(ai_settings=ai_settings, screen=screen) UFOs = Group() UFOs.add(UFO_object) timer_score_display = [pg.time.get_ticks()] for ship in ships: gf.create_fleet(ai_settings=ai_settings, screen=screen, ship=ship, aliens=aliens) gf.create_barriers(ai_settings=ai_settings, screen=screen, barriers=barriers) screen.fill(ai_settings.bg_color) while True: gf.check_events(ai_settings=ai_settings, screen=screen, play_button=play_button, scores_button=score_button, stats=stats, sb=sb, sound=sound, ships=ships, aliens=aliens, bullets=bullets) if stats.game_active: gf.update_ships(ai_settings=ai_settings, screen=screen, stats=stats, sb=sb, sound=sound, ships=ships, aliens=aliens, bullets=bullets, alien_bullets=alien_bullets, UFOs=UFOs) gf.update_aliens(ai_settings=ai_settings, screen=screen, stats=stats, sb=sb, sound=sound, ships=ships, aliens=aliens, bullets=bullets, alien_bullets=alien_bullets, timer=timer, aliens_list=aliens_list, UFOs=UFOs) gf.update_bullets(ai_settings=ai_settings, screen=screen, stats=stats, sb=sb, sound=sound, ships=ships, aliens=aliens, bullets=bullets, barriers=barriers) gf.update_alien_bullets(ai_settings=ai_settings, ships=ships, alien_bullets=alien_bullets, barriers=barriers) gf.update_UFO(ai_settings=ai_settings, screen=screen, stats=stats, sb=sb, sound=sound, bullets=bullets, UFOs=UFOs, timer_value_display=timer_score_display) else: screen.blit(self.game_title, (300, 100)) screen.blit(self.alien_one, (200, 250)) screen.blit(self.alien_one_label, (235, 380)) screen.blit(self.alien_two, (400, 250)) screen.blit(self.alien_two_label, (435, 380)) screen.blit(self.alien_three, (600, 250)) screen.blit(self.alien_three_label, (635, 380)) screen.blit(self.ufo, (800, 220)) screen.blit(self.ufo_label, (852, 380)) gf.update_screen(ai_settings=ai_settings, screen=screen, play_button=play_button, score_button=score_button, stats=stats, sb=sb, sound=sound, ships=ships, aliens=aliens, bullets=bullets, alien_bullets=alien_bullets, UFOs=UFOs, timer_score_display=timer_score_display, barriers=barriers)