Beispiel #1
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("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, and a group of aliens.
    ship = Ship(ai_settings, screen)
    bullets = Group()
    aliens = Group()
    
    # 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, play_button, ship, aliens, bullets)
        
        if stats.game_active:
            ship.update()  
            gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets)
            gf.update_aliens(ai_settings, stats, screen, ship, aliens, bullets)
			
        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button)
def run_game():
    # Inicia o jogo e cria um objeto para a tela
    pygame.init()
    ai_settings = Settings()
    ai_settings.set_icon("alien_icon_32x32.bmp")

    # cria uma tela com as dimensões de ai_settings
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))  # type: Surface

    pygame.display.set_caption("Alien Invasion")

    # cria o grupo de projéteis, todos disparados ficaram aqui
    bullets_group = Group()
    aliens_group = Group()

    # cria a espaçonave
    ship = Ship(ai_settings, screen)

    # cria a frota de aliens
    gf.create_fleet(ai_settings, screen, ship.rect.height, aliens_group)

    # cria a instancia para estatísticas
    stats = GameStats(ai_settings)

    score_board = Scoreboard(ai_settings, screen, stats)

    # cria a instancia do botão play
    btn_play = Button(screen, "Play")

    # Inicia o laço principal do jogo
    # neste onde ocorre todos os eventos
    while True:

        # escuta de eventos de mouse ou teclado
        gf.check_events(ai_settings, screen, stats, score_board, btn_play,
                        ship, aliens_group, bullets_group)

        if stats.game_active:
            # atualiza a posição da nave
            ship.update()

            # atualiza e limpa os projéteis
            gf.update_bullets(ai_settings, screen, stats, score_board,
                              ship.rect.height, bullets_group, aliens_group)

            # atualiza a posição dos aliens
            gf.update_aliens(ai_settings, stats, score_board, screen, ship,
                             aliens_group, bullets_group)

        # atualiza as informações da tela
        gf.update_screen(ai_settings, screen, stats, score_board, ship,
                         aliens_group, bullets_group, btn_play)
Beispiel #3
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")

    # 创建一飞船
    ship = Ship(ai_settings, screen)
    # alien = Alien(ai_settings, screen)
    # 创建一个用于存储子弹的编组
    bullets = Group()

    # 设置背景颜色
    # bg_color = (230, 230, 230)
    aliens = Group()
    #创建外星人群
    gf.create_fleet(ai_settings, screen, ship, aliens)
    #创建一个用于存储游戏统计信息的实例, 并创建记分牌
    stats = GameStats(ai_settings)

    play_button = Button(ai_settings, screen, "play")
    # 计分
    sb = Scoreboard(ai_settings, screen, stats)

    #背景音乐
    # pygame.mixer.music.load("D:/py/pygame/sounds/111.mp3")
    # pygame.mixer.music.play(loops=-1, start=0.0)
    music1 = pygame.mixer.Sound("D:/py/pygame/sounds/222.wav")
    #开始游戏的主循环
    while True:
        #监视键盘和鼠标事件
        gf.check_events(ai_settings, screen, stats, play_button, ship, aliens,
                        bullets, music1, sb)

        if stats.game_active:  #判断是否处于活动状态(是否有命)

            #根据移动标志调整飞船的位置
            ship.update()

            # 更新子弹位置并删除已消失的子弹  删除子弹击中的外星人
            gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens,
                              bullets)

            #更新外星人位置
            gf.update_aliens(ai_settings, stats, screen, sb, 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))
    ship = Ship(ai_settings, screen)
    bullets = Group()

    pygame.display.set_caption("Alien Invasion")

    bg_color = ai_settings.bg_color
    while True:
        game_funcions.check_events(ai_settings, screen, ship, bullets)
        ship.update()
        bullets.update()
        game_funcions.update_screen(ai_settings, screen, ship, bullets)
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(ai_settings.name)

    #创建Play按钮
    play_button = Button(ai_settings, screen, "Play")

    #创建一个用于存储游戏统计信息的实例
    stats = GameStatus(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)

    # 开始游戏的主循环
    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_aliens(ai_settings, screen, stats, sb, ship, aliens,
                             bullets)

        #print("The number of bullets is :%d " %len(bullets))
        #每次循环时都重绘屏幕与物体
        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets,
                         play_button)

        #添加等待时间
        time.sleep(0.03)
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(ai_settings, screen)
    # 创建一个用于存储子弹的编组
    bullets = Group()
    # 创建一个外星人
    alien = Alien(ai_settings, screen)

    # 开始游戏主循环
    while True:
        gf.check_events(ai_settings, screen, ship, bullets)
        ship.update()

        update_bullets(bullets)

        # print(len(bullets))
        gf.update_screen(ai_settings, screen, ship, alien, bullets)