DANIELA PIRES (86 pts)

LEANDRO AMANO (83 pts)

RICARDO TAKAHASHI (180 pts)

GABRIEL SPORCH (53 pts)

ÉMERSON ROCHA (85 pts)

RICARDO TEIXEIRA (40 pts)

AUTOR DESCONHECIDO (100 pts)

DEN IVANOV (260 pts)

DEMIS BUCCI (50 pts)

DAUTON JANOTA (255 pts)

MARLOS ALVES CARMO (90 pts)

ZECA BALA (45 pts)
Treinamento PontoFlash de Flash e ActionScript

Quero que no fim de uma animação de um movieclip, o filme vá para frames aleatórios.

Como faço para um certo objeto seguir o mouse, mas não por toda a cena?

Entrada diferente numa segunda visita ao site.

Como mando um formulário sem usar banco de dados?

Como organizar um projeto para que o arquivo não fique grande?

Alguém tem um modelo de contrato para websites?

Como defino uma pausa (delay) em meu filme?

Posso abrir uma janela popup de um projetor (executável)?

Como capturar a tecla pressionada, para usar em uma ação?

Como deletar a última palavra de um campo de texto?

Como fazer uma timeline andar mais lenta que outra?

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

Preciso colocar uma variável PHP num campo de texto do Flash?

É possível carregar um filme (loadmovie) numa cena determinada?
MC se movimenta ao contrario do mouse (velocidade, distância)

Criação de letras transparentes - Fireworks

Interpolação de movimento

Configurando texto via actionscript.

Betinhocarreiro e Dysney.

Plugins variados para seu trabalho em design

Efeito de Fogo no Photoshop

Duplicate Movieclip.

Formulário de e-mail com ASP.

Line Draw

Como fatiar um site modelo portal no Fireworks

Funções de actionscripts
Combobox

Eventos MX

Friction

Drag simples

Natal arvores

Quantum

Cubos vivos

Search

Substituir texto

Page Curl

The Vars

Menu Tsunami
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