Jogo da Caça ao Tesouro – Scratch 2.0 – Grupo LCorp
Aula 2 Scratch 2

O tutorial foi produzido pela equipe Lcorp – ACT Unicamp Limeira

Tutorial em video:

Inscreva-se no Canal!

Jogo disponível em: https://scratch.mit.edu/projects/680465401

Proposta

O objetivo deste segundo jogo (Jogo da Caça ao Tesouro) consiste em procurar pistas escondidas nos cenários para encontrar o tesouro final.

Imagem 1 – Foto ilustrativa do jogo.

Glossário

  • Atores: Elementos que possuem blocos de código e que permitem algum tipo de interação, seja esta por parte do usuário ou do sistema.
  • Variáveis: Variáveis são como caixinhas que guardam informações (texto ou número) para o nosso programa. Elas podem ser listas também, ou seja, um grupo com várias dessas caixinhas. Na imagem abaixo, é exemplificado como você pode criar variáveis e interagir com elas.
Imagem 2 – Menu esquerdo do Scratch mostrando algumas variáveis.
  • Eventos: Na aba de eventos, podemos definir o que deve acontecer quando outra coisa acontecer, como quando o jogo for iniciado por exemplo. Além disso, nos eventos é possível configurar a transmissão e recebimento de informações, para caso queiramos avisar os outros atores do jogo de algo para que eles possam reagir a isso (como quando o jogador acertar a palavra) de alguma maneira.
  • Aparência: Nesta aba, podemos customizar coisas sobre a disposição visual do jogo, como falas de atores, mudança de cenários e mostrar/esconder coisas na tela.
  • Movimento: Nesta aba, podemos adicionar movimentos e animações aos atores.

Primeiros passos

Primeiramente, devemos pensar nos pontos-chave da lógica do nosso jogo. Assim, vamos iniciar pensando no que deve ser feito para elaborar o nosso jogo:

  1. Precisamos saber quais informações guardar sobre o jogo e seu andamento.
  2. Precisamos colocar os cenários e controlar a mudança de cenário (quando o gato vai de um para outro, por exemplo).
  3. Precisamos de um jeito de mostrar o local das pistas para que quando o jogador clique, possamos executar alguns blocos de código.
  4. Precisamos também mostrar as pistas com as charadas na tela.
  5. Por fim, precisamos mostrar o tesouro e encerrar o jogo

O que devemos guardar?

Para a lógica desse jogo temos dois pontos principais: a mudança de cenários e o progresso durante o jogo, no que se refere a quantidade de pistas que o jogador já encontrou.

            Para isso usamos duas variáveis:

  • cenario_atual: Para sabermos em qual cenário o ator principal se encontra.
  • progresso: Armazena o progresso do jogador em relação às pistas encontradas.

Como mudamos de cenário?

Antes  de tudo, precisamos adicionar os cenários ao jogo. Para isso, clique em “Palco” no campo inferior direito e depois em “cenários” para selecioná-los. você pode selecionar cinco da sua preferência, para depois colocarmos as pistas..

Para a lógica da mudança de cenário devemos, primeiramente, pensar em quando o cenário deve mudar. O cenário vai mudar quando o usuário clicar em uma das duas setas localizadas nas laterais da tela do jogo.

Este é o comportamento do ator “Seta para Esquerda”. Note que queremos que o cenário altere quando o nosso ator é clicado. Para isso, usamos nosso evento “ir para esquerda” para o personagem se movimentar e após isso alteramos o cenário para o anterior (estamos “voltando” o cenário). Além disso, ao irmos para o outro cenário, continuamos com a movimentação do personagem para o efeito de movimento e também usamos um incrementador/decrementador na contagem da variável cenario_atual. É importante ressaltar que há uma verificação da contagem do cenário, visto que temos um número limitado de cenários. Caso cheguemos ao primeiro cenário, mudamos para o último e vice-versa.

Imagem 3 – Bloco de código responsável pela mudança de cenário quando houver um clique na seta esquerda.

Neste exemplo, notamos que, além da mudança de cenário que explicamos, neste bloco, ainda há dois eventos transmitidos para a movimentação do ator do gato: o “ir pra esquerda” e o “continuar da esquerda” que iremos explicar agora. Perceba, porém, que o mesmo vale para a seta da direita, mas com os valores alterados por se tratar de funções espelhadas.

            Para cumprir estes eventos, precisamos adicionar os blocos abaixo no ator do gato:

Imagem 4 – Bloco de código responsável pela animação do gato.

Possuímos dois eventos para que o gato vá para a esquerda no primeiro, e depois continue do lado direito no segundo, para dar a impressão de movimento na tela.

Quanto às fantasias, você pode acessá-las no canto superior esquerdo ao clicar no ator do gato. Lá, adicione o mesmo gato porém de cabeça para baixo, pois o bloco “aponte para a direção 90” move o gato em graus. No fim, o gato deve virar normalmente para a esquerda quando mudarmos para a fantasia 2, e para a direita na fantasia 1.

Imagem 5 – Fantasias utilizadas.

Como mostramos os elementos?

Para contribuir para a jogabilidade é necessário espalhar os elementos para todos os cenários existentes. De forma geral, cada cenário terá um elemento para interação.

            Para realizarmos isso a lógica será o seguinte, cada elemento será mostrado apenas no seu respectivo cenário, caso o cenário seja diferente do seu iremos esconder o elemento para a interação não ser possível.

            Como podemos ver no bloco de código abaixo, sempre que recebermos o evento “mudou_cenario” iremos comparar a variável “cenario_atual” para verificar se devemos mostrar o elemento ou não.

Imagem 6 – Bloco de código responsável por mostrar os elementos de cada cenário.

As pistas serão utilizadas como forma do jogador encontrar o próximo elemento, sendo assim cada pista deverá ser mostrada assim que o elemento referente a ela for clicado.

            Para termos controle sobre isso, cada elemento terá um evento “mostrar pista”, com o valor da pista referente. Entretanto, antes disso precisamos checar se o progresso já está adequado para aquela pista, isso evitará que o elemento seja clicado quando ainda não é permitido. Caso o progresso esteja adequado iremos aumentar o valor do progresso para dar continuidade as próximas pistas.

Imagem 7 – Bloco de código responsável por verificar se o progresso está adequado.

Como mostramos as pistas?

Uma vez que o progresso da pista seja adequado, a pista poderá sempre ser mostrada, permitindo ao jogador rever a pista caso seja necessário.

Imagem 8 – Bloco de código responsável por verificar se o progresso já é maior que o necessário.

Como mostramos o tesouro?

Agora que já aprendemos como fazer o jogo funcionar, no geral, falta arranjarmos um jeito de mostrarmos o tesouro na tela. Para isso, basta avisarmos o restante dos atores que o jogo se encerrou e que o jogador achou o tesouro, além de mostrar o tesouro em si.

Vamos começar adicionando o seguinte bloco de código no ator da estrela:

Imagem 9 – Bloco de código responsável por transmitir que o tesouro foi encontrado.

Devemos agora adicionar o ator do tesouro. Para isso, clique no botão de “adicionar ator” no canto inferior direito e procure um tesouro. Depois, arraste o tesouro para o local que você deseja exibi-lo. Por fim, adicione o seguinte bloco de código ao ator do tesouro:

Imagem 10 – Bloco de código responsável por transmitir que o tesouro foi encontrado.
Imagem 11 – Exemplo do tesouro sendo exibido.

Mas ainda falta uma coisa: o gato deve ir ao centro e comunicar ao jogador que o jogo foi encerrado e que ele venceu. Para isso, basta adicionarmos um simples bloco de código dentro do ator do gato:

Imagem 12 – Bloco de código responsável por mover o gato e fazer o gato falar as mensagens finais.

Assim, terminamos o nosso jogo da Caça ao Tesouro! Até a próxima!