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 = 600aulaMeu jogo(videogames. Janela):
def__iniciar__(auto, largura, altura):
super().__init__(largura, altura)
self.player_x = largura // 3
self.score = 0defon_key_press(auto, chave, modificadores):
se chave == arcade.key. ESQUERDA:
self.player_x -= 10
elif chave == arcade.key. CERTO:
self.player_x += 10defatualizar(auto, delta_time):
# Atualize a lógica do jogo aqui
passardefon_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 = 0defon_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:
retornar0defsave_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 = Falsodefatualizar(auto, delta_time):
se self.power_up_active:
# Aplique efeitos de power-up durante o jogo
self.apply_power_up_effects()
auto.pontuação += 10defapply_power_up_effects(auto):
# Adicione a lógica específica de inicialização aqui
passardefactivate_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 = 0defatualizar(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.