Oiee, outro tutorial, dessa vez, um movie clip que foge do mouse:
Movie clip que foge do mouse ao colidir com elePara isso basta criar um movie clip e inserir o seguinte código nele, vou comentar:
Lembre-se de o Instance name do Movie Clip ser bola
- Código:
-
onClipEvent (enterFrame) {
vx*=0.89;
vy*=0.89;
if(_root.bola.hitTest(_root._xmouse,_root._ymouse,true)) {
dx = _x-_root._xmouse;
dy = _y-_root._ymouse;
dir = Math.atan2(dy, dx)*(180/Math.PI);
dist = Math.sqrt(dx*dx+dy*dy);
vx=(Stage.width/50-dist/50);
vy=(Stage.height/50-dist/50);
}
_x+=Math.cos(-dir*(Math.PI/180))*vx;
_y-=Math.sin(-dir*(Math.PI/180))*vy;
}
Após ter feito isso, teste, e veja o resultado...
Bonito não? xD
Agora, vamos aos comentários, vou explicar cada comando
- Código:
-
onClipEvent (enterFrame) {
Isso faz SEMPRE (nesse frame) executar as funções dentro de { e }
- Código:
-
vx*=0.89;
vy*=0.89;
Diminui as velocidades X e Y do mc, o atrito com o chão, ar, parede, etc.
[/code]if(_root.bola.hitTest(_root._xmouse,_root._ymouse,true)) {[/code]
Se o instance name do mc for diferente, substitua "bola" pelo nome
Ao colidir com o mouse, executar tudo o que há dentro de { e }
- Código:
-
dx = _x-_root._xmouse;
dy = _y-_root._ymouse;
calcula as distancias X e Y entre o mce o mouse e atribui seu valor às variaveis dx e dy
- Código:
-
dir = Math.atan2(dy, dx)*(180/Math.PI);
Calcula a direção para qual o mc irá olhar usando as distancias entre mouse e mc
- Código:
-
dist = Math.sqrt(dx*dx+dy*dy);
Calcula a distância GERAL, distância linear entre a bola e mouse
- Código:
-
vx=(Stage.width/50-dist/50);
vy=(Stage.height/50-dist/50);
Calcula as velocidades X e Y da bola, Tamanho da tela/50 - distancia linear/50
- Código:
-
}
fecha as tags de colisão
- Código:
-
_x+=Math.cos(-dir*(Math.PI/180))*vx;
_y-=Math.sin(-dir*(Math.PI/180))*vy;
Faz a bola andar, na direção inversa com as velocidades X e Y
[/code]}[/code]
Fecha as tags de onEnterFrame
CASH: 5 - GP (cash by tio sL)