Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: diegohernans en Julio 30, 2014, 09:01:35 AM

Título: evitar colision de dos objetos que no poseen colision
Publicado por: diegohernans en Julio 30, 2014, 09:01:35 AM
Hola Todos. Tengo un problema en mi proyecto estoy usando algunos objetos sin colision por funcion de mi juego, pero ahi momentos que se juntan y queda uno sobre el otro y esa no es la idea, y quiero saber como puedo hacer que mantengan cierta distancia entre ellos. mi objeto que se llama objAliado tiene este codigo en el evento Step pero al perseguir a objSoldier se ponen unos sobre otros y quedan visiblemente como uno quisiera saber como mantener la distancia entre el objAliado espero puedan ayudarme y se halla entendido  :(
ex = instance_nearest(x, y, objSoldier).x;
ey = instance_nearest(x, y, objSoldier).y;

// lo persigue a cierta distancia y si la distancia es mayor deja de perseguir
if distance_to_object (objSoldier)<= 250
{
    move_towards_point( ex, ey, 1)
       
}
else speed = 0;
//al llegar a cierta distancia se detiene para evitar colisionar   
if distance_to_object (objSoldier)<= 50
{
    speed = 0;
}
Título: Re:evitar colision de dos objetos que no poseen colision
Publicado por: king195 en Julio 30, 2014, 10:39:44 AM
Deberías usar mascaras padre, haces un obj_controlparent o obj_controlcolision, a partir de eso creas una colisión hacia el obj_controlparent dentro de los aliados y tu personaje y ahí metes una acción para que suceda lo que quieres.

Hay bastante por Google sobre estas cosas, o en este mismo foro debería de haber algo también sobre este tipo de colisiones, búscalo seguro que lo encuentras, y sino ya te hecho una mano.
Título: Re:evitar colision de dos objetos que no poseen colision
Publicado por: diegohernans en Julio 30, 2014, 05:45:14 PM
Pero sin usar mascara ni que sea colisionable se podría ? Es  que si tiene mascara y  o lo hago sólido pierdo otras funciones en mi juego.
Título: Re:evitar colision de dos objetos que no poseen colision
Publicado por: knd144 en Julio 31, 2014, 12:10:46 AM
Ponerle colisión o en el evento STEP algo como
if(distance_to_object(elOtroObjeto)<=1)
{
... //Alejarse, transportarse unos pixeles hacia atrás, etc...
}