Battlefield2, World of Tanks, The Sims4 e Freedom Force são alguns dos milhares de jogos incríveis que foram desenvolvidos com Python.
Tkinter, a interface Python padrão para o kit de ferramentas Tk GUI, é um módulo poderoso que torna a criação de interfaces gráficas do usuário fácil e divertida. Faça uso deste módulo para desenvolver um jogo de cores alucinante. Além disso, aprenda como usar o módulo ao longo do caminho.
O que é o jogo de cores?
No Color Game, o programa exibe o nome de uma cor na tela, mas em uma cor de fonte diferente. Por exemplo, ele exibe a palavra Amarelo usando uma cor de fonte vermelha e o jogador deve digitar a cor do texto.
Essa incompatibilidade de informações junto com o cronômetro cria uma grande confusão e cria uma experiência de jogo divertida.
O módulo Tkinter e Random
Para construir o Color Game, você usará o
tkinter módulo e o aleatório módulo. Tkinter é um módulo GUI multiplataforma, simples e amigável que você pode usar para criar interfaces gráficas de usuário rapidamente.Possui algumas ferramentas úteis, como os widgets de etiqueta e entrada e gerenciadores de layout, como pacote, grade e local. As funções fornecidas são bastante diretas, tornando mais fácil para programadores novatos projetar aplicativos sem muito esforço. Para instalar o tkinter em seu sistema, execute o seguinte comando no terminal:
pip instalar tkinter
O módulo aleatório é uma biblioteca integrada com a qual você pode gerar escolhas aleatórias. Usando este módulo, você pode desenvolver jogos de críquete de mão, jogos de adivinhação de números, jogos mágicos de oito bolas, geradores de senha aleatórios, e muitos mais.
Como construir um jogo de cores usando Python
O código-fonte do Color Game está disponível em um Repositório GitHub e é gratuito para você usar sob a licença MIT.
Comece importando o tkinter e o módulo random. Armazene o nome das cores como uma lista de strings e inicialize o pontuação variável para 0 e tempo restante a 60.
de tkinter importar *
importar aleatório
cores = ['Vermelho', 'Verde', 'Azul', 'Preto', 'Rosa', 'Branco', 'Roxo', 'Amarelo', 'Marrom']
pontuação = 0
tempo_restante = 60
Defina uma função chamada beginGame() isso leva evento como um argumento de entrada. A função executa duas tarefas. Primeiro, ele verifica se o tempo restante igual a 60. Se sim, ele chama e executa o contagem regressiva() função. Em segundo lugar, chama o cor seguinte() função que embaralha aleatoriamente e exibe a cor e a pontuação quando o jogo está em andamento.
defbeginGame(evento):
se tempo_restante == 60:
contagem regressiva()
próximaCor()
Defina uma função chamada próximaCor() e referenciar as variáveis globalmente. Se o tempo restante for maior que 0, defina o foco no campo de entrada usando o focus_set() método no rótulo de entrada (armazenado na variável e) definido na metade posterior do código.
Use o pegar() método para recuperar o texto atual da entrada como uma string e transformá-lo em minúsculas para evitar incompatibilidade de maiúsculas e minúsculas. Se for igual à cor exibida na tela, incremente a pontuação em um. Use o excluir() função de 0 até o último índice no widget de entrada para limpar o conteúdo.
defnextColor():
global pontuação
global tempo restante
se tempo_restante > 0:
e.focus_set()
se e.get().lower() == cores[1].mais baixo():
pontuação += 1
e.delete(0, FIM)
Use o embaralhar() função para reordenar itens na lista e exibir o rótulo de cor com o texto como a primeira cor da lista e a cor da fonte como a segunda cor da lista. Use o config() função em scoreLabel (que pede para pressionar Enter) para exibir a pontuação conforme o jogo está em andamento.
random.shuffle (cores)
label.config (fg=str (cores[1]), text=str (cores[0]))
scoreLabel.config (texto="Pontuação: " + str (pontuação))
Defina uma função chamada contagem regressiva() que faz referência à variável de tempo restante e a diminui em um. Use o config() função no timeLabel para exibir o tempo restante na tela e o depois() função para retorno de chamada contagem regressiva funcionar após um atraso de 1000 milissegundos ou um segundo.
defcontagem regressiva():
global tempo restante
se tempo_restante > 0:
tempo_restante -= 1
timeLabel.config (texto="Tempo restante: " + str (tempo_restante))
timeLabel.after(1000, contagem regressiva)
Inicialize a instância tkinter e exiba a janela raiz. Defina o título, as dimensões em pixels e a cor de fundo da janela.
raiz = Tk()
root.title("Jogo de cores com um toque especial")
raiz.geometria("750x450")
root.configure (background='Laranja')
Use o Rótulo widget para instruir o jogador sobre as instruções do jogo. Ele aceita a janela pai na qual você o colocaria. O texto deve exibir o tipo e tamanho da fonte junto com a cor de fundo do rótulo. Use o pacote() função para organizar o widget de rótulo em blocos antes de colocá-los no widget pai.
Da mesma forma, defina o rótulo de pontuação para instruir o usuário a pressionar Digitar para iniciar o jogo, bem como um rótulo de tempo para exibir o tempo restante. Certifique-se de que todos os rótulos tenham uma cor de fundo laranja, para que se misturem ao fundo. Defina um rótulo vazio que conterá os nomes das cores no próximaCor() função.
instruções = Rótulo (raiz, texto ="Digite a cor da palavra, não o texto ;)", fonte=('Arial', 24), bg="laranja")
instruções.pacote()
scoreLabel = Rótulo (raiz, texto ="Pressione Enter para começar", fonte=('Arial', 24), bg="laranja")
scoreLabel.pack()
timeLabel = Rótulo (root, text="Tempo restante: " + str (tempo_restante), fonte=('Arial', 24), bg="laranja")
timeLabel.pack()
label = Label (raiz, fonte=('Arial', 90), bg="laranja")
Conforme mencionado anteriormente, use o widget de entrada para capturar a resposta do jogador. Uma etapa importante é vincular a tecla Enter a um evento na janela tkinter para que, quando o jogador a pressionar, uma função específica seja executada.
Para conseguir isso, você passa o chave e o beginGame() funcionam como parâmetros para o vincular() função. Além disso, use o pacote() e focus_set() métodos para organizar e definir o foco no rótulo de entrada quando você pressiona a tecla Enter.
e = entrada (fonte =20)
root.bind('' , startGame)
e.pack()
e.focus_set()
O circuito principal() A função diz ao Python para executar o loop de eventos tkinter e escutar eventos (como pressionamentos de botão) até você fechar a janela.
root.mainloop()
Junte todo o código e você terá o Color Game com uma reviravolta pronta para jogar na ponta dos dedos.
Saída do jogo de cores usando Python
Ao rodar o programa Color Game, uma janela aparece na tela. Ao pressionar Enter, a contagem regressiva começa e o jogador deve começar a digitar a cor da palavra. Para cada resposta correta, a pontuação aumenta em um e, ao final, exibe a pontuação final.
Desenvolvendo jogos usando Python
Python é uma linguagem fantástica para desenvolvimento de jogos. A linguagem não é apenas simples de entender e usar, mas também permite que desenvolvedores de jogos de todos os níveis de experiência criem mundos de jogos impressionantes que são interessantes e divertidos.
Além disso, os criadores têm uma vasta gama de opções quando se trata de dar vida às ideias, graças às várias plataformas de desenvolvimento de jogos disponíveis no mercado, como PyGame ou Kivy.