コード例 #1
0
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)
コード例 #2
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')
    #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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
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")
    #创建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)
コード例 #7
0
ファイル: test.py プロジェクト: a-runner/spider
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)