Coluna Flash – Colisão de MovieClipIntroduçãoAtualmente vemos crescer o número de jogos desenvolvidos em Flash. Hoje irei mostrar um simples exemplo, onde ocorre a colisão entre duas instâncias de clipe de filme, utilizando o método hitTest. Pré-requisitosMacromedia Flash, cohecimento básico em ActionScript. ObjetivoMostrar ao leitor um exemplo simples de colisão entre dois clipes de filme e capacitá-lo ConceitosSe o produto final de seu trabalho no Flash necessitar que existam colisões (muito comum em games), você poderá fazer uso do método hitTest integrante do objeto movieclip. ConteúdoVamos ao exemplo: Crie um novo filme (Ctrl + N) e salve-o como colidir.fla Crie uma camada, insira no lado esquerdo do palco um polígono, converta-o em clipe de filme (F8) e atribua o nome de instância “poligono_mc” (sem aspas). 1 – Nome de instância para o objeto. Insira agora dentro da mesma camada, no lado direito do palco, um circulo, converta-o em Clipe de filme (F8) e atribua o nome de instância “circulo_mc” (sem aspas). 1 – Nome de instância para o objeto. Crie uma nova camada e dê o nome de “actions”. /*Primeiramente iremos criar uma action que fará com que o circulo acompanhe o mouse do usuário.*/ circulo_mc.startDrag(true); /*aqui definimos que a instância “circulo_mc” começará a ser arrastada e seu centro acompanhará o cursor do mouse (método StartDrag(true))*/ /*Vamos agora inserir uma action para criar um evento que se atualize constantemente, através do evento onEnterFrame e criaremos uma animação via actions para o polígono*/ poligono_mc.onEnterFrame=function(){ /*evento de atualização constante. */ this._x=this.x+10; /*animação via actions para o poligono onde a propriedade _x (posição no eixo x) dessa instância receberá (=) como valor a sua posição atual + 10 pixels. */ if(this.hitTest(circulo_mc)){ delete this.onEnterFrame; /* estamos perguntando se (if) a instância poligono_mc se chocou(hitTest)com a instância que está dentro dos parênteses, no caso “circulo_mc”, e determinando que quando colidir será removido (delete) o evento de atualização constante (onEnterFrame). */ } } Considerações FinaisAgora é só testar seu filme e movimentar o mouse para arrastar o círculo. Quando os dois colidirem Vimos nesse artigo um simples exemplo do que podemos fazer com o método hitTest, use a imaginação Forte abraço Autor: Danilo Forte – Colunista do Portal MXSTUDIO Qualquer dúvida envie um email para danilo_forte@mxstudio.com.br ou acesse o nosso fórum |
gostaria de saber como eu fasso para tirar ums duvida que acontescem frequente mente com as pessoa
acho que ja acontesceu com varias pessoas
espero que vc possa me ajudar toma meu msn
joseantoniotkd2007@hotmail.com
queria só tirar umas duvidas …
flw
Danilo sua publicação esta bem explicada e foi de grande ajuda, porem o seu ActionScript esta com uma pequena falha, vc esqueceu de colocar um ” _ ” na linha ” 5. ” depois do ” . ” :
errado:
5. this._x=this.x+10;
certo:
5. this._x=this._x+10;
Fmz…
Obrigado pela sua publicação, e por sua atenção
Cara esgotaram-se minhas possibilidades de testes, não consigo usar esta função no flash CS5, pesquisei em td qt é lugar achei vários codigos. adaptei todos para o que preciso, mas nada.
se puder fala aí como funciona ou me add msn. é o endereço do email. abraço
Olá!
Estou tentando usar a colisão de movieclip mas não estou conseguindo.
Quero que quando o objeto mao colidir com o objeto painel a variavel habilitado = false.
código:
mao.startDrag(true);
mao.onEnterFrame=function()
{
if(this.hitTest(painel)){
var habilitado = false;
}
}
E gostaria de saber como faço se ela parar de colidir a variavel habilitado = true;
Obrigado!