Pesquisa de site

Exibindo e atualizando uma pontuação de jogo no Pygame


Explore o básico de um jogo de plataformas simples e aprenda como marcar pontos.

Neste tutorial, você aprenderá como exibir e atualizar pontuações de jogos no Pygame, uma biblioteca Python popular para desenvolvimento de jogos. Ao final, você será capaz de criar um jogo de salto simples e exibir a pontuação do jogador na tela à medida que avança. O jogo rastreia a entrada do teclado para que você possa mover o jogador para a esquerda e para a direita usando as teclas de seta.

Criando um jogo simples

Antes de poder exibir e atualizar pontuações no Pygame, primeiro você precisa criar um jogo para trabalhar. Neste tutorial, você criará um jogo simples onde um jogador pode se mover para a esquerda ou para a direita. Mas antes disso, você deve ter o pip instalado no seu dispositivo. Após instalar o pip, execute o comando abaixo para instalar o módulo pygame:

pip install pygame

Para começar, importe os módulos necessários e configure a estrutura básica do jogo:

import pygame, sys
pygame.init()
# Set up the window
screen = pygame.display.set_mode((750, 450))
# Set up the game clock
clock = pygame.time.Clock()
# Set up the player character
player = pygame.Rect(100, 200, 50, 50)
# Set up the obstacle
obstacle = pygame.Rect(200, 200, 50, 50)
# Set up the game loop
while True:
   # Handle events
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
          pygame.quit()
          sys.exit()
      if event.type == pygame.KEYDOWN:
          if event.key == pygame.K_LEFT:
              player.x -= 10
          elif event.key == pygame.K_RIGHT:
              player.x += 10
 
  # Update the game state
  # Draw the game
  screen.fill((0, 0, 0))
  pygame.draw.rect(screen, (255, 0, 0), player)
  pygame.draw.rect(screen, (0, 255, 0), obstacle)
 
  # Update the display
  pygame.display.flip()
 
  # Limit the frame rate
  clock.tick(60)

Com este código esqueleto, seu jogo básico pode ser jogado. Pressione para a esquerda ou para a direita para mover o personagem do jogador, representado pelo quadrado vermelho.

Exibindo e atualizando a pontuação do jogo

Agora que você configurou um jogo básico, adicione um sistema de pontuação e exiba a pontuação na tela.

Configurando Pygame para renderização de texto

Para exibir texto no Pygame, primeiro precisamos importar os módulos necessários e inicializar o módulo de fonte. Para fazer isso, use o seguinte código na parte superior do seu script:

import pygame
import sys
import os
pygame.init()
pygame.font.init()

O módulo pygame.font permite usar os recursos de renderização de texto do Pygame, e a função pygame.init() inicializa o módulo font.

Criando um sistema de pontuação básico

A seguir, crie um sistema de pontuação básico para o seu jogo. Para fazer isso, declare e inicialize duas variáveis: score e score_increment. A variável score acompanhará a pontuação atual do jogador, e a variável score_increment especificará quanto a pontuação deve aumentar cada vez que o jogador tocar um obstáculo.

Adicione o seguinte código no topo do seu script, abaixo das importações:

score = 0
score_increment = 10

Em seguida, atualize a pontuação conforme o jogo avança. No loop do jogo, você pode verificar se o personagem do jogador está colidindo com o obstáculo. Se estiverem, aumente a pontuação pelo valor especificado na variável score_increment.

Atualize o loop do jogo para incluir o seguinte código:

# Update the game state
if player.colliderect(obstacle):
    score += score_increment

Este código verifica se o personagem do jogador está colidindo com o obstáculo. Se estiverem, aumenta a pontuação no valor especificado.

Exibindo a pontuação na tela com o módulo Font

Agora que temos um sistema de pontuação básico implementado, vamos exibir a pontuação na tela usando o módulo de fonte.

Primeiro, vamos configurar o objeto font adicionando o seguinte código ao topo do loop do jogo:

# Set up the font object
font = pygame.font.Font(None, 36)

Este código cria um objeto de fonte com tamanho de 36 pixels e nenhuma família de fontes especificada. Você pode personalizar a fonte e o tamanho da fonte especificando um arquivo e tamanho de fonte diferente na função Font().

A seguir, vamos desenhar a pontuação na tela. Adicione o seguinte código ao loop do jogo, depois de atualizar o estado do jogo e preencher a tela:

# Draw the score to the screen
score_text = font.render(f'Score: {score}', True, (255, 255, 255))
screen.blit(score_text, (10, 10))

Este código usa o método render() do objeto font para criar uma superfície de texto contendo a partitura e, em seguida, desenha (desenha) a superfície de texto na tela na posição (10, 10).

Personalizando a aparência do texto da partitura

Por fim, personalize a aparência do texto da partitura escolhendo a fonte e o tamanho da fonte e alterando a cor do texto.

Para escolher uma fonte e tamanho de fonte específicos, passe o arquivo e o tamanho da fonte como argumentos para a função Font():

font = pygame.font.Font('arial.ttf', 48)

Você pode baixar facilmente diferentes arquivos de fontes da Internet. Após o download, basta colocar o arquivo da fonte na raiz do seu diretório de trabalho.

Para alterar a cor do texto, passe uma tupla de cores como terceiro argumento para o método render():

score_text = font.render(f'Score: {score}', True, (0, 255, 0))

E é isso! Com essas mudanças, agora você deve ter um sistema de pontuação de jogo totalmente funcional que exibe a pontuação na tela e a atualiza conforme o jogador avança no jogo. Você pode personalizar ainda mais a aparência do texto da partitura experimentando diferentes famílias de fontes, tamanhos e cores.

Acompanhamento de pontuação no jogo

Abaixo está o código funcional completo. Você também pode encontrar o código neste repositório GitHub.

import pygame
import os
pygame.init()
pygame.font.init()
score = 0
score_increment = 10
# Set up the window
screen = pygame.display.set_mode((750, 450))
# Set up the game clock
clock = pygame.time.Clock()
# Set up the player character
player = pygame.Rect(100, 200, 50, 50)
# Set up the obstacle
obstacle = pygame.Rect(200, 200, 50, 50)
# Set up the game loop
while True:
    font = pygame.font.Font(None, 36)
    # Handle events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                player.x -= 10
            elif event.key == pygame.K_RIGHT:
                player.x += 10
    
    # Update the game state
    if player.colliderect(obstacle):
        score += score_increment
    
    # Draw the game
    screen.fill((0, 0, 0))
    pygame.draw.rect(screen, (255, 0, 0), player)
    pygame.draw.rect(screen, (0, 255, 0), obstacle)
    # Draw the score to the screen
    score_text = font.render(f'Score: {score}', True, (255, 255, 255))
    screen.blit(score_text, (10, 10))
    
    # Update the display
    pygame.display.flip()
    
    # Limit the frame rate
    clock.tick(60)

Este código cria uma janela com tamanho de 750x450 pixels, um personagem do jogador e um obstáculo. Ele usa um loop de jogo para lidar com eventos, atualizar o estado e desenhar o jogo na tela. Também inclui um sistema de pontuação que aumenta a pontuação em dez pontos cada vez que o personagem do jogador colide com o obstáculo, e um objeto de fonte e código de renderização de texto para exibir a pontuação na tela.

Na seção de manipulação de eventos, o código também inclui funcionalidade para mover o personagem do jogador para a esquerda e para a direita usando as teclas de seta.

O loop do jogo inclui código para atualizar a tela e limitar a taxa de quadros a 60 FPS, garantindo que o jogo funcione sem problemas.

No geral, este código fornece um exemplo básico de como exibir e atualizar pontuações de jogos no Pygame e pode ser personalizado e expandido para criar jogos mais complexos e envolventes.

Crie jogos diferentes usando Pygame

Pygame é uma biblioteca poderosa e fácil de usar para criar jogos em Python. Com seu rico conjunto de recursos e capacidades, você pode criar uma ampla variedade de jogos, desde simples jumpers e plataformas até jogos mais complexos e envolventes.

Quer você seja um desenvolvedor de jogos iniciante ou experiente, Pygame é uma excelente escolha para criar jogos envolventes e divertidos.

Artigos relacionados: