Comunidad de diseño web y desarrollo en internet online

Dudilla con el método hitTest!

Citar            
MensajeEscrito el 11 May 2009 03:46 pm
Buenas tardes!
Sabeis como podria hacer para detectar la colision de un movieclip normal y otro duplicado?????
he intentado hacerlo normal pero veo que no funciona...

if (["yunke"+i].hitTest(robot)){
_root.yunkeb._visible=false;
_root.robot.toque();
}


GRACIASSSSS

Por mike1989

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 May 2009 07:13 am
??????

Por mike1989

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 May 2009 06:30 pm
Primero debes tener un orden en cuanto a tu razonamiento de quien debe detectar a quien... es decir... el robot debe saber si le pega algun yunke o si el yunke debe saber a que robot le pega.... si solo es un robot... entonces debemos decir que el robot detecta si es "tocado" por algun yunke"i", esto es muy importante de establecer para saber como debe quedar tu condicion, ahora si ya revisando el codigo

if (["yunke"+i].hitTest(robot)){
_root.yunkeb._visible=false;
_root.robot.toque();
}

Deberia ser algo asi:
if (_root.robot.hitTest(_root["yunke"+i])){
//aqui haces lo que deseas hacer...
_root.yunkeb._visible=false;
_root.robot.toque();
}

Nota: _root.robot puede variar dependiendo donde este haciendo la comparacion, si lo haces dentro de robot, basta con solo usar this.hitTest(_root["yunke"+i])

Por HugoIP

6 de clabLevel



 

msie7
Citar            
MensajeEscrito el 12 May 2009 10:59 pm
Muchas gracias por contestar hugo :)!
me sigue sin funcionar...mira te comento tengo el movieclip yunke y su duplicado! y me detecta la colision del movieclip original pero la del clip duplicado me la sigue sin detectar :S te comento mi codigo haver si me encuentras el error!

en el codigo tengo esta funcion que duplica el yunke y lo cambia de posicion:

Código :

function yunke(){
   for(i=0;i<1;i++){
   yunkeb.duplicateMovieClip("yunke"+i, i);
   _root["yunke"+i]._x = random(800)+1; 
   _root["yunke"+i]._y = -90;
   yunkeb._x = random(800)+1;
   }


y despues tengo los if's que me detectan la colision con robot que los guardo en una variable global previamente (me funciona el movieclip pero su duplicado no me lo pilla el hitTest) :

Código :

this.onEnterFrame=function(){
if(_root.robot.hitTest(_root.yunkeb) or _root.robot.hitTest(_root["yunke"+i])){
      _global.colisionyunke=1;
   }
if (_global.colisionyunke){
      yunkeb._visible=false;
      robot.toque();
      }else{
      yunkeb._visible=true;
       }
}


perdona las molestias y GRACIAS!!!!
un saludo

Por mike1989

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2009 05:40 am
Mira el codigo para duplicar esta bien... sin embargo observa con mucho cuidado cual es l valor de i despues de terminar el ciclo for

Cuando entras a la fucion enterFrame, la variable i no veo donde la estableces... pues al duplicar al final termina valiendo 1 (el ciclo for revisa primero si la condicion se cumple, si se cumple ejecuta la accion dentro de las llaves que lo limitan y como ultima accion incrementa la variable)

Y tambien recuerda si la variable la creaste dentro de la funcion yunke solo ahi existe, y fuera no existe ni en la funcion enterFrame... si la creaste en linea de tiempo principal entonces si puede ser usada en cualquier funcion pues todas la funciones pueden usarla.

entonces dentro de tu funcion enterFrame

this.onEnterFrame=function(){
for(i=0;i<1;i++){
if(_root.robot.hitTest(_root.yunkeb) or _root.robot.hitTest(_root["yunke"+i])){
_global.colisionyunke=1;
}
}
if (_global.colisionyunke){
yunkeb._visible=false;
robot.toque();
}else{
yunkeb._visible=true;
}
}

El uso del ciclo es para que en cada enterFrame se revisen todos los yunkes desde yunke0 hasta yunkeN, volviendo a darle a i el valor inicial correcto...

Por HugoIP

6 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.