LUIZ HERRERA (117 pts)

DENIS CARAVALHO (85 pts)

DEMIS BUCCI (50 pts)

JOÃO NETO (78 pts)

RODRIGO AMARAL (56 pts)

KEN AWAMURA (130 pts)

RICARDO TEIXEIRA (40 pts)

DEN IVANOV (260 pts)

RICARDO FIGUEIRA (33 pts)

RICARDO TAKAHASHI (180 pts)

EDUARDO PERROUD (52 pts)

FLASHGURU (155 pts)
Treinamento PontoFlash de Flash e ActionScript

Preciso enviar um formulário integrando Flash e ASP.

Como duplicar um movieclip (duplicateMovieclip) e colocá-los abaixo do original?

Como fazer uma variável receber um valor aleatório (randômico) entre 50 e 100?

Como abrir uma janela popup no Flash?

Tem como eu fazer um scroll de texto com imagem junto?

Exemplo de digitação de texto, com simulação de backspace.

Como envio um valor para uma variável em um movieclip duplicado com o nome de (varbola+n) e que cada bola tenha um valor?

Como verificar um caracter numa variável e retira-lo?

Como faço para colocar efeito alpha em imagens gif, importadas para o flash?

Existe alguma maneira de atualizar automaticamente um cálculo matemático?

Como enviar e receber variáveis do flash para o PHP utilizando LoadVars?

Como posso setar uma cor para o Release de todos os botões de meu filme?

É possível modificar uma animação de acordo com a hora do dia?

Como mudar de campo pela tecla TAB?
Comunicação Flash-PHp-MySql - Objeto LoadVars

Como criar um site totalmente dinâmico em Flash MX

Formulário simples.

Shake - navegador tremendo.

Rayoflight.

Limitar por IP? Porque não utilizar o Shared Object do Flash?

Objeto XML - importando para o Flash

TV Scan Lines - Fireworks

Local Shared Objects segunda parte.

Aprendendo a interagir Flash e ASP

Frases randômicas

Jogo dos 7 erros.
Toca fita

Double cube

Mouse thingy

Notícias

Grass and wind

Balls 3f

Move menu

InfoForm

MTV

Dynamic

shared Objects

Barra interativa
HOME | TUTORIAIS
Jogo da Forca (terceira parte)
por Alexandre Porto

1 / 2 / 3

 

Clique aqui para ver o exemplo final desse tutorial funcionando.

O desafio desse terceiro tutorial é a contagem de pontos e o reinício em caso de erro e acerto. Começaremos por definir algumas variáveis que serão usadas nesse processo. O quinto quadro da timeline principal ficaria assim:

onClipEvent (load) {
    function Letras () {

        // aqui eu transformei as ações do primeiro turorial em uma função
        // como já foi indicado antes

        pos = q0._x+60;
        u = random(parseInt(_root.numeroTotal));
        palavra = _root["pala"+ u]
        numeroQuadros = palavra.length-1;
        for (i=0; i<numeroQuadros; i++) {
            duplicateMovieClip (_root.q0, "q"+i, i);
            setProperty ("_root.q"+i, _x, pos);
            pos += 35;
        }
    }
    Letras();

    // aqui eu a chamo no mesmo evento. Como foi feito com os botões.
    function repetir () {

        // aqui eu estou criando uma função repetir
        // que será usada em caso de 5 erros ou acerto da palavra

        for (i=0; i<numeroQuadros; i++) {
            removeMovieClip ("_root.q"+i);
        }

        // aqui eu removo todas os campos de texto da palavra anterior.
        _root.digitado = "";
        _root.q0.mostrar = "";
        _root.acertos = 0;
        _root.i = 0;

        // aqui eu limpo algumas das variáveis declaradas no início.
        loadMovieNum ("botao.swf", 1);
        // reabro os botões com as letras.
        Letras();
        // aqui eu chamo novamente a função que redistribui as letras.
    }
}
onClipEvent (enterFrame) {
    if (_root.acertos == numeroQuadros) {
        _root.mensagem = _root.acertotxt;
        if (count<2) {
            tempo1 = getTimer();
            count = 2;
        } else if ((tempo1+2000)>tempo2) {
            tempo2 = getTimer();
        } else {
            _root.pontos++;
            repetir();
        }

        // essas linhas são para quando a pessoa acerta uma palavra.
        // nada mais é do que a função "repetir" e o incremento em "pontos"
        // Há tb uma instrução get timer para que a função repetir
        // só seja desencadiada depois de 2 segundos

    }
    if (_root.erros == 5) {
        _root.mensagem = _root.errotxt;
        repetir();
        _root.cliquetotal = 0;
        _root.unicos = 0;
        _root.pontos = 0;

        // aqui eu limito o número de erros em 5, quando o jogo é reiniciado
        // você pode incrementar com uma animação de forca

    }
    _root.erros = _root.cliquetotal-_root.unicos;

    // Essa é a forma como checo o número de erros
}

   É importante ficar entendido que os acertos são checados levando-se em conta as letras repetidas e os espaços que são inicialmente computados. Na palavra BANANA, a letra "a" incrementa 3 pts na variável "acerto". Quando o número de acertos for igual ao número de letras, é disparada a função "repetir" (ver código acima). Nesse caso é incrementada a variável pontos e nada é alterado na variável "erros", pois essa só será zerada no caso de 5 erros consecutivos.

   Os erros já são checados de outra maneira. Criei uma variável "unicos" que computa apenas uma vez a letra "a" em BANANA. Assim eu posso comparar seu valor com o número de tentativas (cliquetotal). Se o número de tentativas for igual ao número de letras únicas (sem repetições) + 5, quer dizer que o jogador errou cinco vezes. Desse modo todo o jogo é reiniciado e as variáveis voltam todas para os valores iniciais.

Veja agora como ficou o movieclip action inserido no movieclip das letras.

onClipEvent (load) {
    nome = _parent._name;
   
linha = nome.substr(1);
    _parent.letraAtual = _root.action.palavra.charAt(linha);
    if (_parent.letraAtual == " ") {
        setProperty (_parent, _visible, "0");
       
_root.acertos++;

        // aqui eu incremento a variável "acertos" caso haja espaço na palavra.
        // estou simulando como se ela tivesse sido uma letra acertada
.
    }
}
onClipEvent (enterFrame) {
    if (_root.digitado == _parent.letraAtual) {
        _parent.mostrar = _parent.letraAtual;
        _root.acertos++;

        // aqui eu incremento a variável acertos, pois o jogador acertou uma letra.
        _parent.letraAtual = "_";
        // aqui eu modifico a variável para que ela nunca mais seja checada,
        // caso contrário a variável "acertos" seria incrementada indefinidamente
.
        _root.i = 1;
    }
    if (_root.clique == 1 && _root.i == 1) {

       
// esa é a maneira que encontrei para que uma letra repetida fosse
        //computada uma única vez.
        // assim eu posso checar corretamente o número de erros.

        _root.unicos++;
        _root.i = 0;
        _root.clique = 0;
    } else {
        _root.i = 0;
    }
    _root.digitado = _root.digitado.toUpperCase();
    if (_root.erros == -1) {
       _root.erros=0;
    }
}

Clique aqui para ver o exemplo desse tutorial funcionando. E aqui para baixar o source.

Primeira parte / Segunda parte / Terceira parte


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
1 comentário


Comentário de Eliezer
| 10/4/2012 - 08:43 |
http://www.artessites.com

Alexandre estou a muito tempo tentando fazer esta guitarra http://www.maniadejogos.com/jogos/Virtual+Guitar Você poderi ensinar como se faz.