EDUARDO WALMOTT (226 pts)

JONAS GALVEZ (521 pts)

EDUARDO PERROUD (52 pts)

SÁVIO PONTE (39 pts)

SASHA GUDEY (235 pts)

JOTA LAGO (40 pts)

AUTOR DESCONHECIDO (100 pts)

LUI FERNANDO (151 pts)

MAURO ROCHA TAVARES (40 pts)

IRAPUAN MARTINEZ (45 pts)

MANGOOST (80 pts)

ILVA RUDEV (90 pts)
Treinamento PontoFlash de Flash e ActionScript

Softwares úteis para desenvolver junto ao flash:

Preciso de um sisteminha em FLASH para cadastrar emails de visitantes.

Como classificar um array por um de seus itens?

Quero fazer aquelas fumacinhas que cobrem o texto, como na MediaHaus?

Como se faz um gradiente com transparência no flash.

Como posso enviar e-mail através de um formulário feito no flash sem ser pelo formmail.pl?

Como fazer um movieclip andar na diagonal?

Como eu faço para que no OVER do botão surja um círculo da borda que vai aumentando como se fosse uma luz.

Eu estou usando para toolTip um código simples usando o método createTextField.

Quando fazer um CD ROM em Flash?

Criei o script para FullScreen e está abre o site em flash, mas o botão fechar criado no flash não funciona.

Como verificar atravéz do flashMX a resolução do monitor do usuário?

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

Como carregar clipes aleatórios?
Carregador inteligente no Flash 5.

Máscara percorrendo um caminho.

Jogo de colorir.

Flash no Espaço Geográfico

Animação no Flash

Como fatiar um site modelo portal no Fireworks

Adicionar ao favoritos

Barra de rolagem simples no Flash5.

Carregamento dinâmico de JPG e máscara por AS

Bate-papo com Dennis Baldwin - FlashCFM.com

Loop Mixer.

Objeto Sound.
Giratoria

Rolagem no over

Envelhecimento

Alfabetar

3D cube

Odômetro

Texto com pause

Preload advanced

Duplication

Senha múltipla

Preloader

Message Board Flash+ASP
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.