HitTest

Publicado por Marceloduende em 08/10/2007

HitTest

Pré-Requisitos

Macromedia Flash 8, Flash Communication Server ou Flash Media Server.

Conteúdo

Olá pessoal, é meu primeiro tutorial no MX Studio, e o que eu pensei pra essa caminhada é o seguinte:

Ensinar por partes o desenvolvimento de um joguinho de tiros, coisa simples, mas que da uma boa base pra frente.

No tutorial de hoje vou ensinar a usar o hitTest que nada mais é do que um verificador de colisão entre objetos. Chega de conversa e vamos lá.

Primeiro vamos observar a funcionalidade disso. No filme abaixo note que se você arrastar a bolinha pelo palco e soltar nada acontece, agora, se você e soltar dentro do outro quadrado, imediatamente essa bola vai até seu ponto de origem não é mesmo? Isso que se resume o hitTest, dar uma ação quando acontece a colisão. Mas como fazer?

Vamos primeiro reproduzir o arquivo acima, crie uma bola e um quadrado, dentro de um filme de 500 por 450 pixels, transforme os dois elementos em MovieClips, para isso selecione um de cada vez e aperte a tecla de atalho F8, depois de criado nossos dois MovieClips, temos que instanciá-los para declará-los em nosso código, isso se chama OOP (Oriented Object Programming ou Programação Orientada a Objeto). Instancie a bola de “drag_mc” sem as aspas e o quadrado de “area_mc” também sem as aspas.
Ok depois de instanciado nossos objetos vamos ao código. Para acessar sua janela de códigos aperte F9. Agora vamos trabalhar com ActionScript linguagem de programação do Flash.

Vamos inserir por partes o nosso código.

1. Primeiro vamos definir a posição de retorno do MovieClip quando acontecer o hitTest.

var initPosX:Number = 240; // posição X
var initPosY:Number = 100; // posição Y

2. O startDrag nos vai fazer com que arrastemos o drag_mc pelo palco.

drag_mc.onPress = function():Void { // declarando que ao pressionar o drag_mc acontecerá o que está dentro do comando
startDrag(drag_mc);
};

3. O nosso hitTest fará com que quando o drag_mc encostar no area_mc volte imediatamente a posição inicial.

drag_mc.onRelease = function():Void {// o onRelease vem depois do onPress porque ele só é ativado quando se solta o botão do mouse.
if (this.hitTest(area_mc)) { // aqui temos o if (em inglês “se”), e falamos se this (”este” em inglês) colidir em area_mc acontecerá o que está dentro do if
drag_mc._x = initPosX; // que é a posição inicial de X e Y
drag_mc._y = initPosY;
}
stopDrag(); // finalmente paramos o drag
};

E pronto, a parte bem básica de como trabalhar com colisão está pronta. No próximo tutorial ensinarei como trabalhar para que tiros sejam lançados e aconteça o hitTest. Quem tiver interesse em baixar os artigos dessa seção clique aqui.

Abraço a todos e bom estudo.

Autor: Marcelo Duende- Colunista Flash do Portal MXSTUDIO

Qualquer dúvida acesse o nosso fórum.


Assine o nosso Feed
1.339 assinantes,
assine você também!
Publique esse artigo no Twitter Salve este artigo no Delicious Cadastre esse artigo no Dihitt Cadastre esse artigo no UEBA Cadastre esse artigo no Rec6

Marceloduende

3 usuário comentou em " HitTest "

Assine o Feed de Comtentários ou URL de Trackback

Davi disse,
Enviado em 07-04-2008 às 4:55 pm

Legal cara! valeu,
dá pra viajar nessa action só adicionando tellTarget ;)
abraços!

Giovanni disse,
Enviado em 11-11-2008 às 8:04 am

tellTarget é deprecated.

Alakarthy disse,
Enviado em 03-07-2009 às 12:43 pm

Cara, vc salvou minha vida de iniciante em flash. brigadao!

Deixe o seu comentário abaixo...

 Username (*required)

 Email Address (*private)

 Website (*optional)

 

MXStudio © 2003-2010. Todos os direitos reservados.
É expressamente proibido a cópia, reprodução e difusão dos textos, fotos e outros elementos contidos neste site sem autorização expressa do MXStudio.