Sexta-feira, 02 de junho de 2006 às 12h53

Colisão

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.

5 comentários

 Maicon Martins
02/06/2006 13h44

José...

Seu tuto é muito bom! parabéns! espero que os próximos continuem sendo assim!
Abraços!

 rafael greengo
02/06/2006 14h27

Greengo

bom tutorial , soh falto o piso se movimenta.

 Guilherme Silveira
02/06/2006 17h26

Olá

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
02/06/2006 19h15

Neto

Parabéns meu brother, espero q continue ajudando a galera com bons tutoriais, como este.
Um abraço

 Marlon Diego
13/06/2006 11h21

kd o tuto

Nao consigo ver o tuto soh os comentarios ... pq?

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Patrocínio:
Sobre o Autor
José Pinto de Moura é formando de Sistemas de Informação na faculdade Dom Bosco, trabalha em uma grande empresa fluminense de Internet, com desenvolvimento de sites em flash, php, aspx e aplicações em VB.net.
Outros artigos do mesmo autor:

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.