18/11/12

Como foi desenvolvido o jogo "Cálculo de potência?"

Há duas semanas atrás lancei o desafio aos alunos: desenvolver um jogo que brincasse com as potências simples.
Neste post vou tentar explicar um pouco o que fiz.
 
Em que consiste:
Este jogo consiste na apresentação de 6 potências. Quando o sapo entra em cena, as potências também entram e assim que o sapo dá indicação para o jogo começar, aparece um número no palco. O utilizador deverá clicar em cima da potência que lhe corresponde: se o utilizador acertar, avança para o próximo número, se errar, deve tentar novamente até acertar.
Assim que o utilizador identificar corretamente os números para cada potência, o jogo termina.
 
Objetos utilizados:
- 1 palco com 2 cenários;
- 14 sprites: 1 sprite para narrador (sapo); 6 sprites de potências; 6 sprites de números (resultado das potências); 1 sprite para narrador invisível.
 
Palco:
- o palco tem dois cenários: o cenário inicial que identifica o nome do jogo e tem um logótipo associado - o sapo e o lápis; o 2º cenários é simples, tudo branco, para receber os sprites ao longo do jogo.
Código do palco
Sprite Sapo:
- o sapo vai ser o nosso narrador: vai orientar o jogo, dando indicações ao utilizador de como jogar e relembrando alguns conceitos;
- o sapo tem três ações neste jogo: quando começa o jogo, o sapo esconde e volta ao traje inicial; de seguida, assim que invocado, dá as indicações ao utilizador; por fim, faz o fecho do jogo, saudando o utilizador quando chega ao fim;
- este sprite tem 2 trajes: o sapo normal e o sapo a piscar o olho.
Código do sprite sapo
Sprite potência
- cada potência tem o mesmo código, mudando só o número que lhe corresponde;
- a potência tem quatro ações neste jogo: quando começa o jogo, a potência esconde; de seguida, assim que o sapo entra em ação, as potências aparecem no palco;
- a terceira ação diz respeito ao clique do rato: cada vez que o utilizador clicar na potência, é feita a verificação do número que está no palco. Esta validação é feita através do teste feito à variável potência que tem o valor do número que se encontra em palco: o resultado desta validação é enviado para o narrador invisível, que vai transmitir a mensagem ao utilizador;
- a quarta ação diz respeito ao fim do jogo, a potência esconde.
- a potência 8^4 é a potência do último número aparecer no palco e como tal, assim que o utilizador realizar o clique correto sobre si, esta potência não invoca o próximo número mas sim o sapo, para proceder ao fim do jogo.
Código de 2^3
Sprite número
cada número tem três ações neste jogo: quando começa o jogo, os números escondem; de seguida, assim que invocado, o número surge no palco - no caso do número 8, é o sapo anunciá-lo e os outros nº são anunciados pelas potências;
- o número esconde assim que entrar o próximo em cena.
Código do número 8
Sprite narrador invisível
- este sprite existe para que as mensagens resultantes das ações do utilizador sejam dadas pelo sapo, isto é, de cada vez que o utilizador clica em cima de uma potência, para que a mensagem seja dita pelo sapo em vez da potência, criei um ponto de cor verde, que coloquei em cima do sapo, de forma a que este não seja perceptível. Desta forma, dá a sensação que é o sprite sapo a enviar as mensagens ao utilizador;
- este sprite tem três ações neste jogo: quando começa o jogo, esconde e inicializa a variável answer a false; de seguida, assim que invocado pelo sprite potência, é feita a análise do tipo de resposta dada pela potência que o invoca: caso a resposta seja true, é feita a verificação ao número que se encontra no palco. Esta condição existe para que o sapo avise o utilizador que chegou ao fim. Neste jogo, o último número aparecer em palco é o 4096, logo, quando o utilizador acertar na potência correta deste número, o sprite manda a mensagem que o jogo chegou ao fim.
- quando o sapo anunciar o fim, este sprite esconde.

Código do narrador invisível
Espero que esta explicação ajude a perceber melhor o código desenvolvido. Como sabem, têm acesso a todo o código através da nossa galeria no Sapo Kids.
Provavelmente existe uma versão mais simplificada para este cálculo, mas estando nós no inicio da aplicação desta tecnologia, acho que para começo não está mau ;).
Caso o leitor encontre uma solução mais otimizada, por favor partilhe ;).
Todas as sugestões são bem vindas.

0 comentários:

Enviar um comentário