Hola alguien sabe como hacer que el codigo distance_to_object solo compruebe la distancia x de un objeto? asi los enemigos ataquen solo si mi personaje se acerca por los lados nada mas. De antemano gracias...
?? world of warcraft !!

[gml]
distancia=enemigo.x-x;
//Con eso tienes, te da negativo si el enemigo esta a tu izquierda[/gml]

Puedes usar distance_to_point(x,y).
De la manera:

Citar
distance_to_point(personaje.x,y)

Así la coordenada "y" será la misma y sólo se tomará la distancia sobre x.
Para usar el código de brunozxz tienes que convertirlo a valor absoluto
Citardistancia=abs(enemigo.x-x;)
y haría exactamente lo mismo :P

#3 Noviembre 22, 2013, 09:28:00 PM Ultima modificación: Noviembre 22, 2013, 09:30:06 PM por MaanuRP
Nos ayudaria a ayudarte si pones que clase de juego estas haciendo. Yo me imagino uno de plataformas y que quieres que si no estan sobre la misma Y (Sobre la misma plataforma se podria decir) si te detecten, sino no.

Entonces lo que yo haria seria algo como:

[gml]
if (abs(Enemigo.y - Personaje.Y) < 16) and (abs(Enemigo.x - Personaje.x)  < 256)
//Si la diferencia en el eje "y" entre el personaje y el enemigo es menor a 16 y la diferencia en el eje "x" sea menor a 256.
{
    //Atacar al jugador.
}
[/gml]

Y si necesitas saber de que lado te vienen los enemigos, puedes agregar lo que dijo brunoxzx

Cita de: brunoxzx en Noviembre 22, 2013, 02:30:19 AM
[gml]
distancia=enemigo.x-x;
//Con eso tienes, te da negativo si el enemigo esta a tu izquierda[/gml]

Saludos!


Segun lo dice el manual de GM que tenemos a disposicion en el foro: abs(x) Devuelve el valor absoluto de X.

El valor absoluto es una expresion matematica (No se el termino es expresion) que devuelve el valor del numero con respecto al numero, osea, su distancia al 0.

En terminos mas faciles, devuelve el mismo numero pero sin signo.

Por ejemplo:

abs(4) = abs(-4)

Estas dos cosas te dan como resultado un valor de 4.

Saludos!