Buenas tardes (donde vivo es la 1 pm...)
Me gustaria saber si alguien sabe como evitar que 2 objetos, ya sea al colisionar mientras se mueven o al ser creados, queden encimados uno sobre otro.
De antemano gracias...
Quiz? podrias hacerlos solidos y que al colisionar la velocidad de cada uno se haga cero, o simplemente hazlos rebotar unos contra otros.
esplica mas lo que quieres:
asi como me lo dices yo pondria un instance_destroy() en los eventos de colicion y listo XD
OK, una explicacion mas amplia:
Digamos que tengo un objeto que crea una determinada cantidad de objetos aleatoriamente en un room. Esos objetos se mueven hacia un punto en especifico, el cual es el protagonista del juego, y si me muevo ellos me siguen. El chiste es que cuando estos colisionan, se ponen uno sobre el otro, y asi se mueven hasta llegar a donde este mi ubicacion. Lo que quiero es que los objetos se sigan moviendo hacia mi, pero que no se encimen. Asimismo, como la posicion donde los objetos aparecen es aleatoria, a veces aparecen sobre un objeto que va pasando por ahi, y se enciman.
Espero que con esto quede claro el punto.
en el evento en el cual haces que se randomize por todo el room deberias colocar la condicion:
if (!place_free(x,y))
{
x = random(//valor);
y = random(//valor);
}
esto hace que si no hay un objeto en el lugar en que se mueve la instancia,se coloca alli, sino se mueve a otro lugar
oooooook... y para lo otro?
Simplemente haz esto:
Aqui te dejo 2 ejmplos
soccer2008... gracias por tus ejemplos. Por desgracia, el que reboten cuando colisionan no resuelve mi problema. Ya intente con ese metodo, pero no produce el efecto deseado.
En si lo que quiero que hagan es que, al colisionar un objeto con otro, este no se superponga, sino que se vaya junto con el otro objeto hacia el blanco.
Espero que eso les ayude a aclarar mi duda.
entonces, podr?as usar la funcion:
mp_potential_step(x,y,speed,true);
haces que los enemigos sean solidos, usas true para que esquive los objetos solidos y as? no se superpondr?n cuando vayan directo hacia el blanco
Tiene razon Silver_light, pero ser?a aplicarlo a un array q contenga diferentes movimientos y no solo eso, sino tbm una serie de desiciones controladas x un switch XD XD XD
mp_potential_step(x,y,speed,true);...
me suena familiar...
llamame noob si quieres, pero en D&D esa opcion es la de Step Avoiding ?no? Si es asi, ya la he utilizado, y solo consigo que los objetos se queden girando como piezas de engranaje sin moverse ni un solo pixel... al menos hasta que destruya uno de los que obstaculiza el paso, en ese caso el otro objeto sigue su paso.
hmmm...
entonces coloca una condicion de distancia con distance_to_object
asi cuando este lejos de blanco, se acercar?. Y al estar medio cerca dejar? de moverse en circulos tratando de buscar un camino para llegar al blanco.
Edit: te adjunto un ejemplo hecho en D&D a ver que te parece
La cuesti?n ser?a asignarle un movimiento distinto a cada personaje XD XD XD