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!

quinta-feira, 21 de maio de 2020

Pygames: Usando cliques do mouse para criar diálogos

O post de hoje é uma continuação da série Pygames, e é aconselhável você ver o post anterior (https://vemfazermatematicaegames.blogspot.com/2020/05/pygames-como-inserir-sons-no-seu-game.html) que já possui uma série de opções já construídas para caso você não consiga entender tudo sobre o código aqui apresentado. Iremos hoje usar a função de cliques do mouse para mostrar um enredo que pode estar embutido no seu game. O layout usado está disponível em: https://drive.google.com/drive/folders/1HLSHOZClAs26ATXSQVRTnh3k69SSoYoG?usp=sharing.


Para inserir a opção de cliques dentro do seu game é bem fácil, já que é um comando semelhante aos do teclado usados anteriormente, como você pode ver abaixo:


Como você pode ver acima, foi criado um contador que inicia no zero (parte inicial das definições, veja na programação destacada abaixo) e que adiciona mais um ao contador para cada clique dado com o mouse e em seguida existe um "se" (if) para os valores 1,2,3,4 e 5 com as programações de limpeza da tela (tela.fill) e desenho na tela do texto (tela.blit) que corresponde ao valor numérico. Esses textos estão pré formatados na parte inicial da definição, como pode-se ver abaixo:


Resumindo, a cada clique de mouse aparece uma nova frase que pode contar uma história ou um dialogo do game para o seu usuário. Para aumentar o número de frases, basta ir aumentando as frases na definição e nos "se" (if) seguindo o modelo já mostrado.
O post de hoje abre um desafio muito grande para você. Como criar diálogos ente diferentes personagens ou mesmo contar uma longa história que tenha vários caminhos possíveis (árvore de possibilidades). Você consegue dar conta desse desafio? Se conseguir, poste nos comentários como solucionou isso. Até a próxima!

terça-feira, 19 de maio de 2020

Pygames: Como inserir sons no seu game

Lembra do nosso projeto de criar cenários e fazer  personagem se movimentarem por ele: https://vemfazermatematicaegames.blogspot.com/2019/04/pygames-criando-um-cenario-e.html. Hoje daremos continuidade  a ele, inserindo sons para customizar o nosso game. Uma atenção especial é que nem sempre o Python (com a biblioteca Pygames) faz a leitura do som em formato MP3, por isso tenha em mão um conversor (programa ou online) para outros formatos como o OGG e o WAV.

A primeira opção de som a ser colocado no game é o som ambiente que será tocado durante todo o game. Abaixo temos o código responsável por ficar tocando o som:



Lembre-se de sempre colocar o nome do arquivo e a extensão corretamente para não dar problemas na hora de executar o game. Além disso, quando usamos sons, pode acontecer dele ser extremamente alto ou baixo, de modo a prejudicar a execução do game. Isso pode ser ajustado com o comando "set_volume" que pode assumir valores entre 0 e 1 para ajustar o som sem precisar fazer qualquer modificação no arquivo.
Além do som de fundo, os games possuem sons associados ao personagem e ao ambiente. No exemplo abaixo, temos o código responsável por fazer sons quando o personagem pula e anda para frente e para trás:



Assim como o código do som ambiente, é necessário definir um carregamento do arquivo de som, mas nesse caso, o play deve ocorrer somente na ação estipulada (pular ou andar) e por isso o play do som fica localizado no código referente a tecla de movimento. 
Caso você queira o código-fonte utilizado nesse post, basta acessar o seguinte link: https://drive.google.com/drive/folders/1LYtnlEE7InMgMGlWCgU83FlVpUuKVW22?usp=sharing. Agora é a sua vez. Use os conhecimentos aqui adquiridos para fazer sua versão de um pequeno game que tenha sons de fundo e sons complementares. Até a próxima!

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çõ...