LUIZ AVANCI (51 pts)

GUILHERME G.G. (137 pts)

SYDNEY GANHO (60 pts)

ALEXANDRE PORTO (1281 pts)

FLASHGURU (155 pts)

HELEN TRIOLO (444 pts)

ILVA RUDEV (90 pts)

RODRIGO AMARAL (56 pts)

MAURO ROCHA TAVARES (40 pts)

BÁRBARA TOSTES (64 pts)

RÔMULO NUNES (32 pts)

JOÃO NETO (78 pts)
Treinamento PontoFlash de Flash e ActionScript

Não consigo mudar o foco do HTML para o objeto flash.

Existe um jeito de fazer um movieclip aparecer em locais aleatórios da tela?

Quero estabelecer as coordenadas para onde um movieclip irá entrar na tela.

Por Favor alguém poderia me ajudar com um combobox?

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

Como coloco um cronômetro no flash?

Como deslocar um filme para um frame diferente dependendo de uma resposta?

Como editar a fonte do Label de um compontente RadioButton?

Como faço pra colocar múltiplas senhas e múltiplos usuários num FlashMovie?

Como faço para um objeto seguir em um caminho sinuoso?

Como tornar um objeto com alpha zero quando eu clicar em um dos outros itens?

Tem jeito de no flash eliminar as variáveis que foram criadas?

Tem como fazer um loading do loadVariables?

Como eu faço para configurar uma pausa (delay)dinamicamente no filme?
Scroll Text.

RIA está vindo com tudo

TV Scan Lines - Fireworks

Duplo clique.

Degradé com tons metálicos - Fireworks

Animação no Flash

Formulário usando Flash e PHP

Integração Dreamweaver + Fireworks.

Tornando movieclips arrastáveis (drag movieclip)

Alterando Artistic Media no Corel Draw

Imagem Pixel a Pixel no PhotoShop.

Sistema de newsletter utilizando Flash + ASP.
Imã

Bspline1

ICQ

Drag circling

Counter

Fract

Preloadtotal

Velocímetro

Loteria

Random color

DuplicateMC

Dynamic menu
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