Nesse tutorial iremos desenvolver um Jogo de Páscoa utilizando a versão do Scratch para Arduino, o controle será realizado pelo Joystick conectado a placa.
No tutorial anterior entendemos o que é o Scratch, o S4A e as funções deles, caso você não tenha familiaridade com a ferramenta, eu sugiro que você verifique o tutorial anterior: Como utilizar o Arduino com Scratch, antes de colocar a mão na massa.
Depois de entender o funcionamento, você será capaz de desenvolver vários jogos, vamos lá?
Montagem do Joystick
Para o projeto precisaremos dos seguintes materiais:
01- Arduino UNO
01- Protoboard
01- Módulo Jostick Analógico – 3 eixos
A montagem será feita da forma demonstrada abaixo: (Esse esquemático foi desenvolvido com a ferramenta Fritzing)
Criando um jogo controlado pelo Arduino
Agora teremos um longo caminho pela frente, tudo pronto?
-Descrição do projeto de jogo
Objetos/Personagens: 1 coelho (3 trajes), 5 ovos de páscoa e 1 ovo podre
Objetivo: O coelho deve se mover para tentar pegar os ovos de páscoa que caem aleatoriamente, tentando contabilizar a maior quantidade de pontos possível, desviando dos ovos podres. O jogo termina se o coelho pegar um ovo podre.
Cenário: paisagem estática de jardim
Movimentação: O coelho sempre se move na horizontal e em ambos os sentidos ← →, enquanto os ovos se movem na vertical, de cima para baixo ↓, em queda.
Coelho: Quando o coelho está parado ele está com o traje em que fica em pé, quando o coelho está em movimento, muda para o traje agachado, e quando o coelho morre muda para o traje morto.
Ovos: Cada ovo cai aleatoriamente da borda superior da tela e desaparece ao chegar próximo da borda inferior da tela, ou quando o coelho toca nele. As velocidades são variáveis, sendo que o ovo podre está configurado para ter velocidade maior do que os demais.
Restart: Quando o coelho morre, a caixa de pensamento é aberta com a mensagem “Algo não me fez bem”, a contagem é reiniciada e depois de 5s o coelho volta à vida.
Música: O jogo toca a música xylo1, sendo sobreposta pelo som Pop quando o coelho pega um ovo de páscoa. Quando o coelho encosta em um ovo podre, todas as músicas param e começa o som Doy-doy-doy .
Usuário: O usuário controla apenas as movimentações do coelho pelo eixo x.
Controle: Joystick ligado ao Arduino Uno nos pinos analógicos A0 e A1.
-Desenvolvimento do jogo
Primeiramente, a sua placa Arduino deve ser reconhecida pelo S4A, veja como isso é feito em Como utilizar o Arduino com Scratch, nesse tutorial ensinamos a baixar o S4A e ter a sua placa identificada.
Com a sua placa reconhecida, iremos iniciar o projeto.
Mas antes, todas as figuras do nosso projeto foram retiradas da internet e editadas para a remoção do fundo, no link abaixo você pode baixar o arquivo com todas as figuras utilizadas no nosso jogo.
Se você quiser utilizar suas próprias imagens, basta você procurar na internet e remover o fundo através de um programa de edição, ou automaticamente pelo site Removebg.
Depois de ter todas as imagens prontas, vamos criar o nosso primeiro sprite. Nós já temos um que é automaticamente criado assim que iniciamos um projeto, esse é o sprite da nossa placa Arduino.
Vamos modificar a figura desse sprite e transformá-lo em nosso personagem principal, que é o coelho.
Para isso clicaremos na aba Trajes, e em seguida importaremos as três figuras do coelho de nossa pasta, essas são as três variações do nosso personagem.
Depois de carregar as três figuras, nós apagaremos a do Arduino pois a figura não será necessária no nosso projeto, além disso modificaremos o tamanho dos nossos coelhos em “editar”, a intenção é deixar os três com tamanhos reduzidos e aproximados, esse será o tamanho do coelho no nosso jogo. Se você perceber que as figuras estão muito pequenas e quiser aumentar, eu recomendo que você apague e insira a figura novamente, pois se você aumentar uma figura pequena a qualidade será reduzida.
Agora iremos inserir um sprite para cada ovo de páscoa e para o ovo podre, como pode ser visto abaixo. Repita o procedimento para cada ovo, lembre-se de manter um padrão de tamanho nos ovos.
Esse é o resultado depois de criar um sprite para cada ovo de páscoa.
E para inserir o ovo podre precisamos fazer uma pequena edição, para que fique confundível com os outros ovos e o jogo se torne um pouco mais difícil.
Também iremos adicionar o nosso plano de fundo clicando em palco e escolhendo uma imagem.
Além disso, é relevante que mudemos o nome dos nossos sprites, isso irá ajudar quando iniciarmos a programação.
Agora vamos criar a variável da nossa pontuação de ovos.
Clique em Variáveis e em seguida em criar uma Variável, nomeie de ovos, essa variável será responsável pela contagem de ovos capturados.
Com tudo pronto, daremos início a nossa programação de blocos.
Vamos começar com o ovo podre, o diagrama de blocos ficará dessa forma:
Obs: Caso você queira excluir um bloco, arraste-o até o banco de blocos no canto esquerdo.
Para descobrir qual é a localização de cada bloco nas categorias, guie-se pela cor dos blocos, eles são da mesma cor das categorias:
Primeiro vamos iniciar o nosso programa definindo que quando clicarmos na bandeira verde de início, serão repetidos todos os comandos dentro de “sempre”.
Nessa etapa vamos definir que o ovo podre se inicia sendo invisível, por isso utilizamos “desapareça”, com o ovo invisível, definiremos que ele irá para o ponto 230 em y, para definirmos os pontos nós utilizamos como base os indicativos no canto inferior direito do palco, basta apontarmos o mouse para o ponto em que queremos saber as coordenadas. O ponto y 230 é acima do palco, então é mais uma forma de garantir que o ovo não será visto de princípio.
Definiremos que no eixo x, o ovo surgirá em um ponto entre -220 e 230, isso fará com que o ovo apareça em qualquer ponto horizontal do nosso palco, garantindo a imprevisibilidade.
Depois de definir o ponto em que o ovo podre irá surgir, vamos definir que o procedimento será repetido até que o ovo toque o coelho ou até que esteja na posição y = -182, que é quando o ovo chega no chão. A movimentação do ovo é definida para o sentido de 180° para baixo, e a velocidade será um valor sortido entre 8 e 9 passos.
Para verificar o funcionamento, clique na bandeira verde no canto da tela.
Caso o ovo esteja caindo deitado, clique no seguinte comando para que a posição seja alterada:
Para os outros ovos a programação será exatamente a mesma do ovo podre, então vamos duplicar a nossa caixa de blocos do ovo podre, fazemos isso clicando com o direito do mouse no início do programa de blocos, como pode ser visto no vídeo, e então arrastamos a cópia até os sprites dos outros ovos. Quando clicamos em start percemos que os ovos estão deitados, então realizamos o procedimento para virar em cada um deles, como fizemos com o ovo podre.
Você perceberá que os ovos não somem quando atingem o chão, isso acontece porque eles não atingem o mesmo ponto que o ovo podre, isso é determinado pelas dimensões da imagem do ovo, cada imagem tem dimensões específicas, então eu farei algumas mudanças nos blocos de acordo com a minha análise dos pontos em y para cada ovo, você perceberá que quando o ovo cai, é indicada a sua posição no sprite, faça essa correção com todos os ovos que não sumiram ao atingir o chão.
Além disso, vamos mudar a velocidade dos ovos de páscoa para que eles não caiam tão rapidamente quanto o ovo podre, eu irei definir todos para passos de 3 a 7.
Depois de finalizarmos a parte dos ovos, vamos para última etapa que é o sprite do coelho, essa será a etapa mais complexa, vamos lá?
Iniciando a montagem de blocos, eu defini que quando a bandeira for clicada, o coelho é iniciado na posição x = 8 e y = -139. Para encontrar a posição você deve arrastar a figura até a posição desejada e verificar as informações do sprite, como pode ser visto abaixo:
Quando eu clico na bandeira verde, você pode verificar que automaticamente o coelho foi para a posição definida e os ovos começaram a cair.
Agora eu preciso me preocupar com a movimentação do meu coelho.
Nessa etapa eu defini os blocos que estarão em loop durante a execução do programa. Se a leitura do sensor for correspondente à leitura do joystick de direita (essa etapa será explicada adiante), o traje será modificado para agachado, o coelho será direcionado para a direita (90° - direita) e se moverá com velocidade de 10 passos. Além disso, definiremos que quando o coelho atingir a borda ele irá voltar, isso fará com que ele vire para o outro sentido.
Por fim, definiremos que do contrário, o traje será o do coelho em pé.
Em seguida faremos as configurações para a movimentação para a esquerda, oprocedimento será parecido, se a leitura do joystick for para a esquerda, mudaremos o traje do coelho para agachado e ele apontará para -90° com movimento de 10 passos, e se tocar na borda, irá virar o corpo.
Do contrário, o coelho continuará com o traje em pé.
Agora faremos as leituras do joystick, para isso veremos os dados lidos quando o nosso joystick está em posição inicial, quando é movido para a direita e quando é movido para a esquerda.
Quando eu movo o meu analógico para a direita, eu tenho os seguintes valores:
Então eu definirei que se a leitura do Analog0 for maior que 500 e o valor de Analog1 for maior que 1000 o coelho deverá se mover para a direita.
Quando eu movo o meu analógico para a esquerda, eu tenho os seguintes valores:
Nesse caso, eu definirei que se a leitura do Analog0 for maior que 500 e Analog1 é menor que 5, o coelho deverá se mover para esquerda.
Então eu incluirei essas leituras no meu programa, ficando da seguinte forma.
Agora faremos as configurações para quando o nosso coelho morrer.
Primeiro definiremos que se o coelho encostar no ovo podre, a posição de y será alterada, isso apenas provocará um deslocamento de -20 para baixo quando o coelho morrer, eu usei esse bloco apenas para que o coelho morto fique perto do chão, é apenas uma configuração visual.
Em seguida o traje do coelho é alterado para a figura do coelho morto, e é surgido um balão de pensamento com a frase escolhida “algo não me fez bem” durante 5 segundos. O coelho continua nesse estado morto por 5 segundos, e então ele volta para a posição inicial de x:8 e y:-139, em seguida muda para o traje em pé.
Agora vamos fazer os blocos das pontuações para cada um dos sprites de ovos, com exceção do ovo podre, nós acrescentaremos os seguintes blocos.
Esse comando diz que quando um ovo toca o coelho, a variável ovos é acrescida de um. Repita isso para cada um dos outros ovos de páscoa.
Em seguida iremos definir que depois que o coelho morre, a pontuação deve ser zerada.
Para finalizar, vamos inserir trilha sonora para tornar o jogo mais atrativo.
Vamos começar com o som de contagem de pontos para quando pegamos um ovo de páscoa, para isso vamos clicar no sprite de um dos ovos de páscoa, seguidamente iremos na aba Sons e clicaremos em importar.
Eu vou escolher o som que eu quero que faça quando eu pego o ovo de páscoa, eu decidi que quero o que está na pasta Effects, o nome é Pop.
Então eu vou clicar em “ok”, perceba que o som ficará salvo na aba Sons.
Agora iremos dizer ao nosso programa que quando o coelho encostar no ovo de páscoa, deve ser reproduzido o som Pop, para isso eu preciso apenas inserir um bloco nos comandos desse sprite.
Faremos isso com todos os sprites de ovos de páscoa, lembrando que precisamos repetir o procedimento de importar o som na aba Sons para cada um dos sprites, e depois inserir o bloco “toque o som ____”
Para o ovo podre, escolheremos outro som para representar a morte do coelho. Entraremos na aba sons, importar e na pasta Vocals escolheremos o som Doy-doy-doy.
E na programação faremos o mesmo que fizemos para os outros ovos.
No sprite coelho adicionaremos um bloco que define que todos os outros sons serão pausados quando o coelho tocar no ovo podre, isso garante que o programa execute apenas o som de quando o coelho morre.
Agora vamos inserir a música que irá tocar durante todo o jogo. No sprite palco, adicionaremos a música Xylo1 que está localizada na pasta Music Loops.
E na área de comandos do palco, iremos inserir os seguintes blocos:
Depois disso, o nosso jogo estará completo, veja como ficou o nosso projeto finalizado.
Abaixo você tem o programa completo do jogo para o caso de encontrar dificuldades:
Conclusão
O Scratch é uma forma muito lúdica para ensinamento de programação para crianças e adultos que estão adentrando nesse mundo agora, as ferramentas são muito intuitivas e o funcionamento pode ser compreendido facilmente, além de possibilitar inúmeras criações divertidas e dinâmicas.
Nos vemos no próximo tutorial :)