Esempio n. 1
0
def partie_perdue(hauteur_lave: int, générateur,
                  liste_de_sprites: pygame.sprite.Group) -> None:
    """Vérifie si le joueur touche la lave, si oui, afficher qu'il a perdu puis le faire retourner au menu

    :param hauteur_lave: (int) la hauteur de la lave depuis le haut de la fenêtre de jeu
    :param générateur: le générateur de niveaux, l'accès est donné pour pouvoir afficher les platformes
    :param liste_de_sprites: une liste qui contient le joueur, permet d'afficher le joueur
    """
    global niveau
    # Si le joueur touche la lave
    # Remet le niveau actif à 0
    niveau = 0
    # Dessiner tout le niveau et afficher qu'il a perdu
    générateur.draw()
    player.handle_keys()
    liste_de_sprites.update()
    liste_de_sprites.draw(screen)
    étiquette('Vous avez perdu!', 720, 400, 60)
    org_screen.blit(screen, (0, 0))
    pygame.display.flip()
    sleep(1)
    # Faire attendre le joueur 3 secondes avant que le jeu ne le ramène au menu
    for i in range(3):
        screen.fill((0, 0, 0))
        étiquette('Vous avez perdu!'.format(3 - i), 720, 400, 60)
        étiquette('Retour au menu dans {} secondes'.format(3 - i), 600, 500,
                  60)
        org_screen.blit(screen, (0, 0))
        pygame.display.flip()
        sleep(1)
    # Retoune le joueur au menu principal
    menu_général()
Esempio n. 2
0
    def render(self, sprites: pygame.sprite.Group):

        self.display.fill((0, 0, 0))
        for star in self.stars:
            pygame.draw.rect(self.display, (200, 200, 200), star)
        sprites.draw(self.display)
        pygame.display.update()
Esempio n. 3
0
def draw(screen: pygame.Surface, background: pygame.Surface,
         framerate: int, all_sprites: pygame.sprite.Group,
         clock: pygame.time.Clock, grid: Grid, current_time: int,
         grid_visible: bool) -> None:
    screen.blit(background, [0, 0])
    all_sprites.update()
    if grid_visible:
        grid.draw_grid(screen, current_time)
    all_sprites.draw(screen)
    pygame.display.flip()
    clock.tick(framerate)
Esempio n. 4
0
def display_game(sprites: pygame.sprite.Group, live_blocks: Shape,
                 solid_blocks: list):
    sprites.empty()
    for i in live_blocks:
        sprites.add(i)
    for i in solid_blocks:
        sprites.add(i)
    sprites.update()

    screen.blit(background, (0, 0))
    sprites.draw(screen)

    pygame.display.flip()
Esempio n. 5
0
def draw(sprites: pygame.sprite.Group, gas_bar: Bar, temp_bar: Bar,
         score: int):
    """
    :param sprites: Group of stripes
    :param gas_bar: The gas bar that will be drawn
    :param temp_bar: The temp_bar that will be drawn
    :param score: The current score
    This function renders all sprites, bars and borders.
    """
    WINDOW.fill(BACKGROUND_COLOR)
    sprites.draw(WINDOW)

    score_text = FONT.render(str(round(score)), True, WHITE_COLOR)
    WINDOW.blit(score_text, (SCREEN_SIZE[0] - score_text.get_width() - 20, 20))

    gas_bar.draw(WINDOW)
    temp_bar.draw(WINDOW)
Esempio n. 6
0
def update_screen(ai_settings: Settings, screen: pygame.Surface,
                  stats: GameStats, sb: ScoreBoard, ship: Ship,
                  aliens: pygame.sprite.Group, bullets: pygame.sprite.Group,
                  play_button: Button) -> NoReturn:
    """更新屏幕上的图像,并切换到新屏幕"""

    # 每次循环时都重绘屏幕
    screen.fill(ai_settings.bg_color)

    # 在飞船和外星人后面重绘所有子弹
    for bullet in bullets.sprites():
        bullet.draw_bullet()
    ship.blitme()
    aliens.draw(screen)

    # 显示得分
    sb.show_score()

    # 如果游戏处于非活动状态,就绘制Play按钮
    if not stats.game_active:
        play_button.draw_button()

    # 让最近绘制的屏幕可见
    pygame.display.flip()