Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: duda con instance_nearest  (Leído 1831 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Nikoturf

  • Visitante
  • *
  • Puntos: 0
  • Mensajes: 4
    • Ver Perfil
en: Noviembre 05, 2009, 03:53:51 am
Hola! soy muy principiante en GM.

Mi problema es este: quiero que el programa decida cuál es la instancia más cercana a un objeto.
Escribí esto:

cercaobjeto = instance_nearest(objeto.x, objeto.y, all)

Primera duda: ¿Las variables hay que declararlas primero? (en este caso "cercaobjeto")

después quiero cambiar una variable de esa instancia más cercana. Puedo utilizar el id de la variable "cercaobjeto"?

cercaobjeto.variable = 1

o debería ser (cercaobjeto).variable = 1  para que el punto no funcione como operador del id?

Mi idea es que todas las instancias tengan esa variable local con el mismo nombre, para ahorrar en escritura. Las diferenciaría utilizando el id de la instancia.

Probé esto y no me funcionó... aunque todavía no probé declarar la variable primero (tengo que llegar a casa para eso!)

Es muy confuso lo que escribí?

Desde ya muchas gracias y espero respuestas y cualquier sugerencia!
« última modificación: Noviembre 05, 2009, 12:44:31 pm por Nikoturf »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Guacusio

Respuesta #1 en: Noviembre 05, 2009, 05:15:41 am
Primera duda: no necesariamente. Si la declaras (mediante var), el alcance de la variable será sólo dentro de esa pieza de código (y así ahorras memoria), mientras que si no la declaras, permanecerá como parte de la instancia hasta que ésta sea destruida.

Para cambiar una variable puedes usar sin problemas la id guardada en la variable cercaobjeto, tal como dices. El paréntesis sería redundante en este caso ya que no hay confusión posible. Otra cosa sería si quieres leer una variable del "enemigo" de cercaobjeto, donde enemigo es la id del enemigo que guarda la variable. Sería así:

(cercaobjeto.enemigo).variable

Los códigos que has colocado son correctos, no veo por qué no habría de funcionar, a menos que el problema esté en otro lado.


 


Desconectado Nikoturf

  • Visitante
  • *
  • Puntos: 0
  • Mensajes: 4
    • Ver Perfil
Respuesta #2 en: Noviembre 05, 2009, 12:41:28 pm
Gracias! voy a seguir intentando y ver qué estoy haciendo mal.

Hice un objeto para controlar el juego (lo puse en la room, pero con las casillas de solid y visible destildadas). Es aquí donde agregué "Ejecutar códico" en el evento create.

Ahora estuve probando y el problema parece ser que yo necesito comparar entre objetos cuál es el más cercano y no entre las instancias de un mismo objeto. Se puede lograr con objetos en lugar de instancias de un mismo objeto?
« última modificación: Noviembre 05, 2009, 01:18:40 pm por Nikoturf »