Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: p34 en Marzo 31, 2014, 05:16:57 AM

Título: Comparar variables sin conocer objeto
Publicado por: p34 en Marzo 31, 2014, 05:16:57 AM
Hola.

Tengo un objeto que va caminando hacia la derecha cuando esta libre o cuando hay un objeto con su mismo nivel de habilidad en la misma dirección, el problema es: ¿Cómo puedo comparar el nivel del objeto que esta a la derecha?

No se cómo encontrar ese objeto específicamente para comparar el nivel de habilidad con el de mi personaje.

Cualquier idea es aceptada :) y creo sirve con cualquier GM, no sólo con el Studio
Título: Re:Comparar variables sin conocer objeto
Publicado por: Mega G en Marzo 31, 2014, 07:10:33 PM
Suponiendo que todos los enemigos son el mismo objeto:


if instance_exists(objeto_de_enemigos)
{
enemigo=instance_nearest(x,y,objeto_de_enemigos)
if enemigo.x>x  //significa que está a la derecha
{
nivel_enemigo=enemigo.nivel
}
}


Si no, haces que todos los enemigos sean parent de objeto_de_enemigos y ya funcionará.

Un saludo!
Título: Re:Comparar variables sin conocer objeto
Publicado por: penumbra en Marzo 31, 2014, 08:12:21 PM
De hecho, es imposible manipular una variable sin conocer el objeto, a menos que esa variable sea global. En el ejemplo de Mega G primero se trata de conocer el enemigo y luego de eso se consulta la variable. También se puede así (igual, los enemigos tienen que ser todos de un objeto o todos los objetos enemigos tener un padre en común)

with (obj_parent_enemy)
{
    if obj_parent_enemy.x>x
    nivel_enemigo = enemigo.nivel
}


Cita de: p34 en Marzo 31, 2014, 05:16:57 AM
Cualquier idea es aceptada :) y creo sirve con cualquier GM, no sólo con el Studio

En GM8.1 se podía usar una función como variable_local_exists() para preguntar si dentro de algún objeto existía cierta variable, pero este tipo de funciones se volvieron obsoletas en GM:Studio y ya no se pueden usar, aunque si usas gm8.1 todavía puedes aprovecharlas