De que adianta um jogo sem placar? Alguns podem ficar sem, mas a maioria dos jogos que você criar precisará informar ao jogador como ele está se saindo.

As pontuações são parte integrante de muitos jogos, pois fornecem uma medida de progresso e conquista para os jogadores.

Em Python, a biblioteca Arcade oferece uma maneira simples e eficiente de gerenciar pontuações em jogos. Ao gerenciar pontuações com eficácia, você pode aprimorar o envolvimento do usuário e fornecer uma experiência de jogo mais envolvente.

Crie um jogo simples

Antes de começar, certifique-se de ter pip instalado no seu dispositivo. Use este comando para instalar a biblioteca arcade:

pip instalar fliperama

Agora, crie um jogo simples usando a biblioteca Arcade do Python.

O código usado neste artigo está disponível neste Repositório GitHub e é gratuito para você usar sob a licença do MIT.

Neste jogo, o jogador pode se mover para a esquerda e para a direita usando as setas do teclado, enquanto um obstáculo é colocado no mesmo eixo y.

importar videogames

# Configure as dimensões da janela
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

aulaMeu jogo(videogames. Janela):
def__iniciar__(auto, largura, altura):
super().__init__(largura, altura)
self.player_x = largura // 3
self.score = 0

defon_key_press(auto, chave, modificadores):
se chave == arcade.key. ESQUERDA:
self.player_x -= 10
elif chave == arcade.key. CERTO:
self.player_x += 10

defatualizar(auto, delta_time):
# Atualize a lógica do jogo aqui
passar

defon_draw(auto):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. AZUL)
arcade.draw_rectangle_filled(400, 50, 100, 50, arcade.color. VERMELHO)

defprincipal():
jogo = MeuJogo (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

se __nome__ == "__principal__":
principal()

Rastreamento e cálculo de pontuação

Para acompanhar a pontuação do seu jogo, você pode criar um mecanismo para aumentar a pontuação sempre que uma condição específica for atendida. Por exemplo, a pontuação aumenta sempre que o jogador se move em seu jogo e toca com sucesso o obstáculo. Você pode mudar o atualizar método para incluir lógica de cálculo de pontuação:

aulaMeu jogo(videogames. Janela):
def__iniciar__(auto, largura, altura):
super().__init__(largura, altura)
self.player_x = largura // 3
self.score = 0

defon_key_press(auto, chave, modificadores):
se chave == arcade.key. ESQUERDA:
self.player_x -= 10
elif chave == arcade.key. CERTO:
self.player_x += 10

defatualizar(auto, delta_time):
se self.player_x > 330e self.player_x < 470:
auto.pontuação += 1

Exibindo a pontuação

Para exibir a pontuação para o jogador, modifique o on_draw método para incluir uma renderização de texto:

aulaMeu jogo(videogames. Janela):
# ...

defon_draw(auto):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. AZUL)
arcade.draw_rectangle_filled(400, 300, 100, 50, arcade.color. VERMELHO)

pontuação_texto = f"Pontuação: {self.score}"
arcade.draw_text (score_text, 10, 10, arcade.color. BRANCO, 14)

Ao adicionar o código acima, você pode exibir a pontuação no canto inferior esquerdo da janela do jogo.

Armazenando a pontuação mais alta

Para proporcionar uma sensação de conquista e competição aos jogadores, é essencial armazenar e exibir a pontuação mais alta. Você pode usar uma abordagem simples baseada em arquivo para isso.

Use o load_high_score método para ler a pontuação mais alta de um arquivo chamado high_score.txt e devolvê-lo. Depois disso, você pode salvar a nova pontuação máxima no arquivo usando o save_high_score método.

aulaMeu jogo(videogames. Janela):
def__iniciar__(auto, largura, altura):
super().__init__(largura, altura)
self.player_x = largura // 3
self.score = 0
self.high_score = self.load_high_score()

defload_high_score(auto):
tentar:
com abrir("high_score.txt", "r") como arquivo:
retornar int (arquivo.read())
exceto FileNotFoundError:
retornar0

defsave_high_score(auto):
com abrir("high_score.txt", "c") como arquivo:
file.write (str (self.high_score))

defatualizar(auto, delta_time):
# ...

se self.score > self.high_score:
self.high_score = self.score
self.save_high_score()

Exibindo pontuação alta

Semelhante à exibição da pontuação atual, você pode adicionar uma renderização de texto para exibir a pontuação mais alta:

aulaMeu jogo(videogames. Janela):
# ...

defon_draw(auto):
# ...

high_score_text = f"Pontuação alta: {self.high_score}"
arcade.draw_text (high_score_text, 10, 30, arcade.color. BRANCO, 14)

Ao incluir o código acima no on_draw método, você pode exibir a pontuação mais alta logo acima da pontuação atual.

Incluindo Recursos Adicionais

O gerenciamento de pontuações em jogos geralmente envolve a incorporação de recursos adicionais para tornar a jogabilidade mais envolvente e dinâmica. Vamos explorar alguns exemplos de como você pode introduzir recursos adicionais juntamente com o gerenciamento de pontuação em seu jogo.

Power-ups

Power-ups são itens especiais que concedem aos jogadores vantagens temporárias ou pontos de bônus. Criar um activate_power_up método que aciona a ativação do power-up, definindo o power_up_active sinalizar para Verdadeiro.

Você pode agendar o deactivate_power_up para executar após uma certa duração (por exemplo, 10 segundos) usando o método arcada.agenda função. Durante o período ativo da inicialização, você pode usar o apply_power_up_effects método para implementar melhorias de jogabilidade específicas.

Aqui está um exemplo de implementação de um recurso de power-up em seu jogo.

aulaMeu jogo(videogames. Janela):
def__iniciar__(auto, largura, altura):
super().__init__(largura, altura)
self.player_x = largura // 3
self.score = 0
self.power_up_active = Falso

defatualizar(auto, delta_time):
se self.power_up_active:
# Aplique efeitos de power-up durante o jogo
self.apply_power_up_effects()
auto.pontuação += 10

defapply_power_up_effects(auto):
# Adicione a lógica específica de inicialização aqui
passar

defactivate_power_up(auto):
self.power_up_active = Verdadeiro
# Defina um cronômetro ou duração para o efeito de inicialização
arcade.schedule (self.deactivate_power_up, 10.0)

defdeactivate_power_up(auto, delta_time):
self.power_up_active = Falso

Sistema de combinação

Um sistema de combinação recompensa os jogadores por realizar ações bem-sucedidas consecutivas ou multiplicadores de pontuação. Criar um aumentar_combo_contador método que incrementa o contador de combo e aumenta a pontuação com base no nível de combo atual.

Você pode ligar para o reset_combo_counter método e redefinir o contador de combinação de volta para zero sempre que ocorrer uma ação malsucedida. Aqui está uma implementação simples de um sistema de combinação:

aulaMeu jogo(videogames. Janela):
def__iniciar__(auto, largura, altura):
super().__init__(largura, altura)
self.player_x = largura // 3
self.score = 0
self.combo_counter = 0

defatualizar(auto, delta_time):
# Verifique se há ações bem-sucedidas
se self.check_successful_action():
self.increase_combo_counter()
outro:
self.reset_combo_counter()

defaumentar_combo_contador(auto):
self.combo_counter += 1
self.score += self.combo_counter

defreset_combo_counter(auto):
self.combo_counter = 0

Ao incorporar recursos adicionais, como power-ups e sistemas de combinação, você pode adicionar profundidade e emoção ao seu jogo, fornecendo aos jogadores incentivos extras para melhorar seu desempenho, criar estratégias para suas ações e alcançar maior pontuações.

Melhores práticas para gerenciamento de pontuação

Quando se trata de gerenciar pontuações em jogos, seguir as práticas recomendadas pode ajudar a criar uma experiência mais agradável e envolvente para os jogadores. Aqui estão algumas práticas importantes a serem consideradas:

Mecanismos de pontuação significativos

Crie mecanismos de pontuação que se alinhem com os objetivos do jogo e forneçam feedback significativo aos jogadores. O sistema de pontuação deve refletir o progresso, habilidade e conquistas do jogador dentro do jogo.

Considere atribuir valores de pontos diferentes para diferentes ações ou eventos com base em sua dificuldade ou importância para o jogo.

Comentários visuais

Forneça feedback visual aos jogadores quando a pontuação mudar. Você pode conseguir isso por meio de notificações na tela, animações ou efeitos de partículas. As dicas visuais criam uma sensação de realização e reforçam as ações do jogador, aumentando seu envolvimento com o jogo.

Efeitos Sonoros e Animações

Incorporar efeitos sonoros no seu jogo relacionados a atualizações de pontuação para tornar a experiência mais imersiva. Por exemplo, reproduza um efeito sonoro comemorativo ou exiba uma explosão de confete quando o jogador atingir um marco significativo. Esses elementos audiovisuais adicionam emoção e reforçam o ciclo de feedback positivo para os jogadores.

Dificuldade de balanceamento e escala de pontuação

Garanta uma relação equilibrada entre dificuldade e escala de pontuação. À medida que os jogadores progridem no jogo ou encontram obstáculos mais desafiadores, ajuste o sistema de pontuação de acordo. Escalar a pontuação com base na curva de dificuldade do jogo ajuda a manter uma experiência justa e gratificante para os jogadores.

Aderindo a essas práticas recomendadas, você pode gerenciar com eficácia as pontuações do seu jogo, fornecer feedback significativo aos jogadores e criar uma experiência recompensadora e envolvente.

Melhore o envolvimento do jogo com o rastreamento de pontuação

Ao implementar o rastreamento de pontuação em seu jogo, você pode melhorar significativamente o envolvimento do jogador. As pontuações fornecem uma sensação de realização, incentivam a repetição e promovem a competição entre os jogadores.

Exiba pontuações com destaque e recompense grandes conquistas - você motivará os jogadores a se esforçarem para obter um melhor desempenho e melhorar suas habilidades.