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;
}
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.
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.
Ponerle colisión o en el evento STEP algo como
if(distance_to_object(elOtroObjeto)<=1)
{
... //Alejarse, transportarse unos pixeles hacia atrás, etc...
}