Olá, Pessoal!
Vamos agora para o terceiro e último frame do nosso game. Ele será o mais difícil, por isso, será preciso muita atenção.
Pré requisito:
Primeira etapa do tutorial.
Segunda etapa do tutorial.
Dê um clique sobre o terceiro frame, copie e cole os códigos abaixo nele.
mc_msg.gotoAndStop(1);
//desaparece com as peças do robo
for (i=1; i<=6; i++) {
eval("mc_robo"+i)._visible = false;
}
//Elimina os espeços deixados nas variavies das letras
total_letras = substring(total_letras, 1, (total_letras.length-2));
//verifica as letras do arquivo externo
for (i=0; i<Number(total_letras); i++) {
this["letra"+i] = substring(this["letra"+i], 1, 1);
trace("letra"i"="+this["letra"+i]);
}
//variavel que controlará o nível(swapDepth) do movieClip de erro/acerto
var nivel = 1;
//variaveis de controle para pontuação
var pontos, erros, i:Number;
pontos = 0;
erros = 0;
//variavel que verificará se a letra clicada é verdadeira ou falsa
var letraOK:Boolean = false;
//monta os tracos para mostrar a letra oculta caso o usuário acerte
function montaLetras(total) {
for (i=1; i<total; i++) {
duplicateMovieClip(barra0, "barra"+i, nivel++);
if (i GANHOU this["letra"+i]) {
trace("Letra correta");
eval("barra"+i).txt = letra;
pontos++;
letraOK = true;
eval("bt_"+letra).enabled = false;
eval("bt_"+letra)._alpha = 50;
if (pontos CONSEGUIU 6) {
perdeu();
}
}
letraOK = false;
}
//função que contem as rotinas quando ganha
function ganhou() {
trace("VOCE GANHOU!!!");
mc_msg.mensagem = "VOCÊ CONSEGUIU!\nClique em \"Nova palavra\" para jogar novamente.";
mc_msg.gotoAndStop(2);
mc_msg.swapDepths(nivel++);
}
//função que contem as rotinas quando perde
function perdeu() {
trace("VOCÊ PERDEU!!!");
mc_msg.mensagem = "TENTE NOVAMENTE!\nClique em \"Nova palavra\" para jogar novamente.";
mc_msg.gotoAndStop(2);
mc_msg.swapDepths(nivel++);
}
//funcao para sortear uma nova palavra
function novaPalavra() {
trace("limpando barras");
for (i=1; i<total_letras; i++) {
removeMovieClip("barra"+i);
}
barra0.txt = "";
mc_msg.gotoAndStop(1);
gotoAndPlay("comeco");
}
//Ação do botão para sorteio de uma nova palavra
bt_novaPalavra.onPress = function() {
mc_msg.gotoAndStop(1);
mc_msg.swapDepths(1);
novaPalavra();
};
stop();
Vamos tratar agora os elementos da tela e seus respectivos nomes de instância.
Robô
: o robô é formado por seis peças, e cada peça é um movieClip para que possamos acrescentar métodos como “_visible”, para controlar erros e acertos.
Abaixo, apresento o meu robô separado em seis partes e aponto para cada parte com o seu determinado nome de instância.

As letras do alfabeto deverão ser botões, com as seguintes ações:

Botão A
Instância: bt_A
Ação:
bt_A.onPress = function(){
digitado("A");
}
Botão B
Instância: bt_B
Ação:
bt_B.onPress = function(){
digitado("B");
}
E assim sucessivamente, até que todos os botões estejam devidamente com a sua programação.
OBS.: Estas ações devem ser inseridas no terceiro frame na camadas das Ações.
Caixa de texto para exibição da dica e movieClip das letras sorteadas:
Na caixa de texto para exibição da dica, será preciso colocar o nome da variável como: “texto_dica”.
Como dito anteriormente, será preciso criar um movieClip que conterá uma caixa de texto dinâmica. Para isso, crie uma caixa de texto através da ferramenta (Text Tool)
. Coloque o nome da variávei, como “txt’.
Agora, vamos transformá-la em um movieClip. Para isso, basta selecionar a caixa e clicar no botão “F8”. É interessante colocar um traço abaixo da caixa de texto para não fica vazio...é como se ele tivesse que escrever sobre este traço, por exemplo: ____
Posicione em algum local onde haja espaço para mais dez caixas de textos iguais a esta. As outras caixas serão criadas e alocadas dinamicamente, de acordo com a quantidade de letras da palavra.
O nome de instância desse movieClip deve ser “barra0”.

Agora precisaremos criar um movieClip que apresentará as mensagens de retorno no final do game.
Crie uma caixa com a ferramenta “Recangue Tool”
, com as seguintes proporções aproximadamente: 400X150.
Crie uma caixa de texto dinâmica setando a variável com o nome de “mensagem”.
Precisamos transformar estes objetos em um movieClipe. Para isso, selecione os dois objetos(caixa retangular e caixa de texto) e aperte a tecla “F8”.
Agora, precisamos que este movieClip tenha dois frames. O primeiro vazio e o segundo com os objetos. Para isso, clique no primeiro frame do movieClip e aperte “F6” para cria mais um quadro chave. Feitos isso, precisamos apagar o conteúdo do primeiro frame e acrescentar a ação de Stop no primeiro frame.
Fizemos isto porque a mensagem será exibida quando o game terminar e é por isso que os objetos ficam no segundo frame, parado, esperando uma ação que o leve para o segundo.
Vejam um exemplo da caixa de mensagem abaixo:

Estamos no final da construção de nosso primeiro game educacional.
A última coisa que precisamos criar agora, é o botão para sortear uma nova palavra.
Por favor, criem este botão e o instancie com o nome: “bt_novaPalavra”.

A ação para sorteio de uma nova palavra nós já inserimos no terceiro frame das ações.
Bom, agora é só executar o nosso game, e se der tudo certo, se divertir bastante.
Notas finais
-
Primera parte
-
Segunda parte
- Esta parte final é a mais difícil, por isto exige muita atenção. Com o tempo, você ficará apto a trabalhar com desenvolvimento de jogos/games em Flash.
- Você pode vê-lo funcionando clicando
aqui.
- Você pode baixar todo o código fonte clicando
aqui.
- Visite o meu
blog, adicione o seu comentário ou envie um e-mail para
flavio@estudiomultimidia.com.br.
Abraços.
Flávio Márcio M. Gomes