segunda-feira, 25 de maio de 2020

Pygames: Construindo inimigos com deslocamentos randômicos e com Game Over

Em post anteriores usando a biblioteca Pygames, construímos diversos elementos que devem estar presentes em um game, tais como:
-Criando um cenário e a movimentação de um personagem (https://vemfazermatematicaegames.blogspot.com/2019/04/pygames-criando-um-cenario-e.html).
Agora iremos juntar todos eles com a inserção do último elemento restante: um "inimigo" que se desloca pela tela guiado por uma fórmula matemática:


Para iniciar, é importante importar bibliotecas "math", "random" e "time" que serão necessárias para alguns comandos, além da já usada Pygames (isso é feito no começo da programação com o uso do "import"). O principal incremento é a fórmula de deslocamento do "inimigo" (que no nosso modelo é o cogumelo), que deve ser colocada dentro do loop "while not fgExit" com o uso de uma variável de contagem que definimos como "t=0". Observe abaixo:


Você pode fazer alterações na velocidade aumentando ou diminuindo o incremento (o valor 1.5) e modificar os deslocamentos diretamente na fórmula. Ainda é possível construir uma fórmula totalmente do zero e ir testando seu desempenho. Que tal?
Uma importante alteração feita, foi no comando "tela.blit(personagem2Img, ( xcogumelo -128 , ycogumelo -128 ))", no qual foi inserido o valor -128 para X e Y e isso foi necessário devido ao posicionamento do bitmap que não considerou o centro da imagem, por isso esse deslocamento de -128, se tornou necessário. Caso você troque de imagem, precisa modificar essa valor de raio do círculo da imagem.
Obviamente, agora temos a disposição um game que necessita que você desloque seu personagem pela tela para não colidir com o inimigo. E se colidir, o que acontece? Uma possibilidade é ser o game over do jogo e para isso foi acrescentado os comandos abaixo:



Como você pode ver, quando existe a colisão, a tela é limpa (fill), é escrito na tela o texto do "game over" (blit) e em seguida, temos um pausa de 4 segundos (sleep(4)) e por fim o jogo fecha (pygame.quit ()). Para customizar isso, existe a possibilidade de escrever novos textos, inserir novas telas ou até mesmo modificar o tempo de espera ou reiniciar o game automaticamente.
Você pode encontrar o modelo do game aqui descrito em: https://drive.google.com/drive/folders/1kT6_sVDmej9-zu-q9ERSrN12nnnx0qCS?usp=sharing. Espero que tenha gostado e que isso o incentive a desbravar o mundo dos games em Python. Recomendo o site do Pygames (https://www.pygame.org/tags/all) onde existem diversos exemplos de games já produzidos que você pode baixar, executar e modificar para ter novas ideias. Até a próxima!

Nenhum comentário:

Postar um comentário

Como não perder nenhum compromisso: Meu App Agenda

No nosso dia a dia a agenda é um instrumento de grande importância que as pessoas utilizam para fazer anotações de compromissos ou informaçõ...