FLASHGURU (155 pts)

IRAPUAN MARTINEZ (45 pts)

RÔMULO NUNES (32 pts)

AUTOR DESCONHECIDO (100 pts)

JONAS GALVEZ (521 pts)

MARCOS JOSÉ PINTO (44 pts)

SYDNEY GANHO (60 pts)

GUILHERME SCHEIBE (49 pts)

ZECA BALA (45 pts)

DAUTON JANOTA (255 pts)

EDUARDO WALMOTT (226 pts)

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

É possível criar uma variável de outra variável?

Quero calcular dinamicamente o valor de uma compra checando o preço e a quantidade comprada.

Me ensinem a fazer um relógio digital em flash5 usando actions.

Como fazer um marquee com Javascript?

Como faço uma bola se mover e voltar quando bate numa parede?

Como justificar um texto e criar uma barra colorida?

Tenho um filme e gostaria de fazer um loading pois o shockwave deu 100 kb.

Alguém sabe como usar o swapDepths?

Problemas com valores de variáveis em string e espressão.

Como faço pra mudar o nome de uma variável em tempo real?

Tem como eu checar a digitação em um campo de texto e disparar um evento?

Existe um comando que deixe a movimentação de um objeto mais suave?

Como faço pra chamar uma página HTML dentro de um quadro no flash?

Para que usar onClipEvent?
Controle de MovieClip via Microphone.get();

Configurando texto via actionscript.

Efeito lente (máscara e zoom)

Objeto array - Classificar uma array (sorting) e e arrays multidimensionais

Compartilhando fontes

Comunicação Flash-PHp-MySql - introdução

Introdução ao Droptarget

Loop infinito

Simulando botões d'água no PhotoShop.

Line Draw.

Desenhando apenas com Actionscript.

Perspectiva 3D no Flash
Position

Zoom rotate e pan

Dottextsimple

Pintar

Abrirefecharjanelas

X Position

Music On Off

Natal Misc

Volume

Floor of balls

Scrollbar easy

Caçada
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.