Olá pessoal! Mais uma vez estamos aqui para desenvolver algo simples, mas muito legal e de grande utilidade. Vamos observar como funciona o sistema de colisão de movie clips “hitTest()”, muito utilizado para fazer joguinhos.
Primeiro passo:
Vamos criar quatro barras e uma bola. Em seguida, vamos transformá-las em 5 movie clips com os seguintes nomes:
Teto, piso, direita, esquerda e bola, conforme
a figura abaixo.
Segundo Passo:
Vamos instanciar cada movie clip com seu próprio nome. Bola ficará com o <Instance Name> bola. Teto vai ficar com teto e assim por diante, conforme a figura abaixo.
Terceiro Passo:
Vamos direto ao código. Lembrando que o objetivo deste artigo é mostrar a função hitTest() que nos mostra quando um símbolo colide com outro. Bem, vamos lá. Abaixo segue o código comentado.
//declaração das variaveis
direcao = 1; // esta variável indica se a bola vai para direita ou para a esquerda
altura = 0; // esta variável indica se a bola vai para cima ou para baixo
_root.onEnterFrame = function() {
if(direcao == 0) // se direcao = 0, a bola se movimenta para a direita
{
bola._x+=5;
}
if(direcao == 1) // se direcao = 1, a bola se movimenta para a esqueda
{
bola._x-=5;
}
if(altura == 0) // se altura = 0, a bola se movimenta para a baixo
{
bola._y-=5;
}
if(altura == 1) // se altura = 1, a bola se movimenta para a cima
{
bola._y+=5;
}
/*aqui determinamos a colisão com a função hitTest(), quando a bola encostar em qualquer uma das barras ela muda de direção, mudando o valor das variavei direcao e altura.*/
if (bola.hitTest(direita))
{
direcao = 1;
}
if (bola.hitTest(esquerda))
{
direcao = 0;
}
if (bola.hitTest(teto))
{
altura = 1;
}
if (bola.hitTest(piso))
{
altura = 0;
}
};
Bem, aqui termina nosso código lembrando que este código deve ser inserido no primeiro frame, como podemos ver na figura abaixo:
Obs.: o código está sem os comentários e identação para ganhar espaço, mas funciona da mesma forma.
Aqui terminamos nosso artigo. É só rodar e ver o resultado. Fica bem legal e a partir daí podemos criar várias outras aplicações para a função hitTest().
Espero que tenham gostado. Um abraço e até a próxima.
Maicon Martins
Seu tuto é muito bom! parabéns! espero que os próximos continuem sendo assim!
Abraços!
Guilherme Silveira
Gostaria se possível que ao invés de você simplesmente colocar um código... que você o explicasse como a função funciona e sua sintaxe...
Guilherme Francisco da Silva
Parabéns meu brother, espero q continue ajudando a galera com bons tutoriais, como este.
Um abraço
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.