a ver me explico tengo mi player y mi enemigo, hasta ahí bien, tengo un distance_to object a mi obj_player que se activa una vez que mi player esta a menos de 1000px y hace que el enemigo se dirija hacia mi player con un move_toward_points vale hasta ahí sigue todo bien y hace todo correcto lo que pasa es que luego tengo otra condición que hace que una vez este mi enemigo a x pixels vaya mas despacio, pero luego me separo de el y se vuelve a cumplir la primera condición que es la de los 1000px pero una vez que se ha cumplido una vez ya no quiero que se vuelva a cumplir esa si me alejo del enemigo si no ahora querría que se cumpliese otra como puedo hacerlo??espero haberme explicado bien.
create:
siguiendo = false;
encierra la condición de cuando está lejos en un:
if distance_to_object(obj_algo) < 1000
siguiendo = true;
if siguiendo {
//codigo de seguir y seguirá para siempre
}
Cita de: kostra en Febrero 24, 2016, 01:52:25 PM
create:
siguiendo = false;
encierra la condición de cuando está lejos en un:
if distance_to_object(obj_algo) < 1000
siguiendo = true;
if siguiendo {
//codigo de seguir y seguirá para siempre
}
no me vale ya que cuando me vuelvo a alejar siempre vuelve a producirse siguiendo y asi sucesivamente cada vez que me alejo
es lo que puse, entonces, explícate mejor porque no entendí nada :/
Cita de: kostra en Febrero 24, 2016, 05:32:41 PM
es lo que puse, entonces, explícate mejor porque no entendí nada :/
A ver mi obj_Player se acerca al enemigo este lo detecta con un distance to object <500 y se acerca a el a una velocidad de 10 hasta ahí todo bien
despues cuando esta a menos de 300 con otro distance to object <300 se sigue acercando pero mas lento a una velocidad de 5
lo que quiero que una vez han pasado estas dos acciones si me vuelvo a alejar a mas de 300 pero a menos de 500 no cumpla la condicion de menos de 500 entiendes quiero que ya me aleje a la distancia que me aleje se quede con el valor de la condicion de distance to object <300 a una velocidad de 5 ahora esta asi pero cuando me alejo 350 se vuelve a cumplir la distance to object <500 y quiero que esa se anuley solo se cumpla la primera vez entiendes??
enemigo:
create:
[gml]cerca = false;[/gml]
step:
[gml]if distance_to_object(obj_player) < 500
and !cerca
move_towards_point(obj_plater.x,obj_player.y,10);
if distance_to_object(obj_player) < 300 {
cerca = true;
}
else if distance_to_object(obj_player) > 350
cerca = false;
if cerca
move_towards_point(obj_plater.x,obj_player.y,5);[/gml]
//lo siguiente opcional si quieres que al volver a alejarte +500 se frene...
if distance_to_object(obj_player) > 500
speed = 0;
PD: así a ojo, espero no haberme equivocado
Zorge no utilices el move_towards, una vez que das la orden ya puede explotar el planeta que no puede parar al move_towards.
Crea el movimiento move_towards por ejemplo con los ejes x,y en el step del enemigo.
A mi me pasaba y me funciono. ;D
Cita de: nonoroman en Febrero 24, 2016, 06:16:46 PM
Zorge no utilices el move_towards, una vez que das la orden ya puede explotar el planeta que no puede parar al move_towards.
para eso le puse speed = 0; y se acabó move_towards
Cita de: kostra en Febrero 24, 2016, 06:18:11 PM
Cita de: nonoroman en Febrero 24, 2016, 06:16:46 PM
Zorge no utilices el move_towards, una vez que das la orden ya puede explotar el planeta que no puede parar al move_towards.
para eso le puse speed = 0; y se acabó move_towards
Perfecto Kostra, no me hacia falta lo de speed 0, ya que no quería que se frenase, pero también lo podre aprovechar mas adelante, pero por lo demás todo perfecto.
yeah, dale ps coloca cartel en el titulo solusión :B