Exemple #1
0
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)
Exemple #6
0
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)
Exemple #7
0
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)
Exemple #9
0
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)
Exemple #10
0
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)
Exemple #11
0
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
Exemple #12
0
    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)