LUIZ HERRERA (117 pts)

MARLOS ALVES CARMO (90 pts)

ZEBEDIAH (35 pts)

EDUARDO WALMOTT (226 pts)

GÉRIO (93 pts)

ÉMERSON ROCHA (85 pts)

DAUTON JANOTA (255 pts)

GABRIEL SPORCH (53 pts)

SASHA GUDEY (235 pts)

LUI FERNANDO (151 pts)

GUILHERME G.G. (137 pts)

MARCELO SIQUEIRA (96 pts)
Treinamento PontoFlash de Flash e ActionScript

Gostaria de saber se existem plugins para flash.

Quando e para que usar function (função), var, length e o objeto "arguments"?

Como fazer o FSCommand executar um outro arquivo no FlashMX?

Como se usa o NoCache?

Como configurar um fadeIn e um fadeOut em um arquivo de som?

Como eu altero o conteúdo de um campo de texto por um botão?

Como setar _alpha para um texto criado dinamicamente no FlashMX?

Problemas com executáveis em MAC.

Como retardar (delay) o início de uma apresentação em Flash?

Eu fiz um som e queria que ele só tocasse quando a pessoa passasse o mouse por cima dele.

Qual a melhor extensão de imagens bitmap para usar no Flash?

Uma vez eu peguei um filme de um site feito com a tela pequena, só que quando eu aumento a tela ele não aumenta animação!

Gostaria que 180 imagens se alternassem no Flash de 4 em 4 segundos.

Tenho duas músicas no site, como crio um botão para mudar de música?
Família Macromedia Studio MX 2004

Jogo tiro ao alvo

Elasticidade com ActionScript.

Load Movie into level (nível)

Controlando um swf que está em outro frame

Relógio analógico

Flash MX 2004 Updater

Jogo da Forca (segunda parte)

Objeto XML - introdução.

Exibir páginas em html com o componente TextArea do FlashMX2004

Formulário usando Flash e PHP

Integração Flash + Fireworks
Micróbios

Bspline3

Drag scroll texto

Neve

Radio button 1

Fotos banner

Primeira letra maíscula

Scroll Component

Caçada

Stereo Control

Spinner

Zoom e movimento
HOME | TUTORIAIS
Jogo da Forca
por Alexandre Porto

1 / 2 / 3

 

Nesse tutorial vamos tentar criar um jogo de forca usando palavras importadas de um arquivo TXT. Dessa forma, você poderá alterar as palavras usadas no jogo sem ter que abrir seu arquivo FLA. Usei um arquivo txt por ser mais simples, mas é claro que você poderia fazer a integração mais dinâmica com ASP, PHP, XML etc. Mas esse não é o nosso objetivo desse tutorial. Na verdade ele traz para você algumas noções de como manipular variáveis, duplicar Movieclips, trabalhar com loops "for", mas principalmente, capturar, controlar e concatenar strings.

   Clique aqui para ver o exemplo desse tutorial funcionando. Repare que o exemplo mostrado contém campos de texto para mostrar algumas variáveis declaradas nos scripts, apenas para efeito didático.

Estou curioso.

Vamos lá.
Primeiramente vamos trabalhar esse arquivo TXT. Você já deve saber, e se não sabe vai aprender agora, que para gerar várias variáveis importáveis no Flash em um único arquivo de texto é necessário o uso do "&" como divisor. Abra o seu NotePad e digite o seguinte (ou copie e cole):

PALA0=VASCO DA GAMA&pala1=FLAMENGO&pala2=FLUMINENSE&pala3=BOTAFOGO
&pala4=CRUZEIRO&pala5=ATLETICO MINEIRO&pala6=SAO PAULO
&pala7=PALMEIRAS&pala8=CORINTHIANS&pala9=SANTOS 

Depois salve-o com o nome "forca.txt".

   Eu usei nomes de variáveis "pala" seguido de um número para facilitar a programação randômica que irá sortear a palavra usada no jogo. Mas isso você vai ver depois. Coloque tudo seguido, desse jeito, sem espaços. Se você inserir uma quebra de linha, o Flash vai entender como um caracter e bagunçar a programação. Vamos começar com 10 itens para os primeiros testes. Como sou "mapista", escolhi alguns países do nosso planeta.

E no Flash, como vai funcionar?

Bem, como as palavras que serão "pescadas" têm uma quantidade variável de letras, achei que uma boa solução seria ter um, e apenas um, campo de texto dinâmico inserido dentro de um movieclip. Este seria duplicado dinamicamente (duplicateMovieclip), de acordo com o número de letras da palavra sorteada (variavel.length). Lembre-se que eu disse que essa escolha seria randômica.

   Crie um filme com fundo preto e 700X300 pixels. Fiz comprido assim para que possa caber uma palavra ou um conjunto de palavras maiores, mas isso é detalhe. No primeiro frame da timeline principal, vamos carregar o arquivo ,TXT.

loadVariablesNum ("forca.txt", 0);

Agora vamos criar um movieclip onde serão inseridos, posteriormente, os campos de texto que mostrarão as letras escolhidas pelo jogador. Como os movieclips e letras serão gerados e posicionados dinamicamente, é preciso que você pense com antecedência o tamanho e a posição do primeiro movieclip. No meu exemplo ele recebeu o nome de instância "q0" e foi posicionado, na timeline principal, segundo as coordenadas 30X30. Nele, inseri um gráfico de 30X60 pixels.

   Vamos criar agora, na timeline principal, um outro movieclip de nome de instância "actions". Esse movieclip terá apenas actions, como indica seu nome ...

   Insira esse código nele (você pode tirar os comentários):

onClipEvent (load) {
 pos = q0._x+40;
 // variável que será usada para posicionar os campos de texto
 u = random(10);
 // seu valor randomizado será concatenado para importar a palavra
 palavra = _root["pala"+u];
 // aqui escolhemos a variável da palavra que será usada pelo jogo
 numeroQuadros = palavra.length;
 // aqui capturamos o número de letras da palavra
 for (i=0; i<numeroQuadros; i++) {  
// condicional "for" usando o número de letras de palavra
   duplicateMovieClip (_root.q0, "q"+i, i);
   // aqui duplicamos o movieclip
   _root["q"+i]._x = pos;
   // aqui posicionamos os movieclips
   pos += 35;
   // aqui definimos a distância entre os movieclips duplicados
   }
 }

esumindo, se a palavra sorteada for "brasil" (pala0), serão duplicados 5 movieclips (original + 5 = 6). Eles serão posicionados lado a lado no stage e cada um deles conterá uma variável chamada "mostrar", que terá como valor uma letra de "palavra":

Q0 =B, Q1 =R, Q2 =A, Q3 =S, Q4 =I, Q5 =L

Nota: Essa variável será criada mais tarde, quando trabalharmos no movieclip/letra (q0).

   Teste o filme.

   Se você seguiu esses passos, já vai poder ver os movieclips sendo espalhados pelo palco. Inclua uma ação trace para ver a palavra escolhida.

trace (palavra);


Bonitinho, mas eu quero jogar logo.

Calma, calma. Ainda há muito o que fazer. Vamos voltar agora para o movieclip/letra, cujo nome de instância é "q0", e programar a forma como a palavra sorteada será checada e mostrada.

   Entre na área de edição do movieclip (duplo clique nele). Vamos criar dois campos de texto dinâmicos. O campo "mostrar" mostrará a letra digitada corretamente pelo jogador. Já o campo "letraAtual" servirá apenas para você ver o funcionamento durante a edição do FLA. Delete esse campo de texto depois do trabalho concluído, pra esconder o pulo do gato :)).

Nota: coloque um campo de texto embaixo do outro, numa camada acima do
gráfico/fundo 30X60, criado acima.

   Crie agora um outro movieclip dentro desse movieclip. Você pode dar o nome de instância "action" também para ele, já que está em uma timeline diferente do outro. Se você acha que isso pode te confundir, troque para "brasilvaisercampeao". Ele também só vai conter actions. Vamos lá:

onClipEvent (load) {
 nome = _parent._name;
 // aqui eu capturo o nome de instância do movieclip,
 // que será único para cada um duplicado (q1, q2 ... etc).
 linha = nome.substr(1);
 // aqui eu capturo o segundo caracter dos nomes de instância.
_parent.letraAtual = _root.action.palavra.charAt(linha);
 // aqui eu encontro a letra correspondente ao valor de "linha".
}
onClipEvent (enterFrame) {
 // aqui tenho outro evento de repetição.
 if (_root.digitado == _parent.letraAtual) {
 // esse comando checa o botão antes de mostrar  o texto.
 // ainda vamos ver o código inserido no botão.
  _parent.mostrar = _parent.letraAtual;
  // finalmente eu mostro a letra digitada corretamente.
  }
_root.digitado = _root.digitado.toUpperCase();
  // transformo a variável em caixa alta.
}

E o botão?

Agora vamos criar a interatividade, isto é, um campo de texto de entrada e o botão que irá checar se a letra digitada pelo jogador está correta. Para esse campo de texto, eu associei a variável "entrada". Muito original, não?

Agora falta o botão. Nele será inserido o seguinte código:

on (release, keyPress "<Enter>") {
  digitado = entrada;
  entrada = "";
  Selection.setFocus("_root.entrada" );
}

   Quem sabe você também não poderia criar botões com as 26 letras do alfabeto para enviar essa informação? Veremos isso na segunda parte do tutorial. O código seria então:

on (release) {
  digitado = "a";
  // ou outra letra qualquer
  }

Não entendi ... !!!! Porque uma nova variável declarada?

Seguinte, vou explicar: você poderia simplesmente colocar, nos movieclips duplicados, diretamente um campo de texto "_root.entrada". Mas, nesse caso, assim que o jogador digitasse a letra, ela seria mostrada, e não é isso o que queremos. Ela só deve aparecer depois da confirmação, com o botão pressionado.

E quando for uma palavra composta com espaços, como Costa Rica?

hummmmmmmm.
Será que não pensei nisso?
Acho que dá para fazer uma gambiarra. No final do evento "enterframe" do movieclip "_root.q0.actions", coloque a seguinte instrução:

if (_parent.letraAtual == " ") {
  setProperty (_parent, _visible, "0");
  }

Repare que há um espaço entre as aspas. Agora, quando a palavra for composta, o movieclip duplicado correspondente ao espaço em branco fica invisível.

   Bom, por enquanto é só. Na segunda parte do tutorial, veremos como colocar botões com as letras para o jogo.


   Clique aqui para ver o exemplo desse tutorial funcionando. Repare que o exemplo mostrado contém campos de texto para mostrar algumas variáveis declaradas nos scripts, apenas para efeito didático.

   Até a próxima



Devido à reformulação implementada no site, pode ser que você encontre alguns links quebrados. Por favor, ajude-nos a corrigir eventuais problemas nos informando links quebrados
3 comentários


Comentário de Andre
| 26/9/2012 - 17:22 |
http://http://www.pontoflash.com.br/truques_con.php?autor=58

Eu estou criando um jogo e queria saber como fazer quando o ponteiro do meu relogio passar a area do relogio, a area do relogio fique com o alpha 0



Comentário de Andre
| 26/9/2012 - 17:22 |
http://http://www.pontoflash.com.br/truques_con.php?autor=58

Eu estou criando um jogo e queria saber como fazer quando o ponteiro do meu relogio passar a area do relogio, a area do relogio fique com o alpha 0



Comentário de Andre
| 26/9/2012 - 17:22 |
http://http://www.pontoflash.com.br/truques_con.php?autor=58

Eu estou criando um jogo e queria saber como fazer quando o ponteiro do meu relogio passar a area do relogio, a area do relogio fique com o alpha 0