Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: GGrayonar en Septiembre 12, 2018, 01:06:52 AM

Título: destruir un obj (SOLUCIONADO)
Publicado por: GGrayonar en Septiembre 12, 2018, 01:06:52 AM
buenas, gracias por todo el apoyo.
mi pregunta es si tengo el mismo objeto en una room.
y solo quiero eliminar uno solo como se haría.
por que se que si uso el instance_destroy() desaparecen todos ayuda.
Título: Re:destruir un obj
Publicado por: BssString en Septiembre 12, 2018, 01:13:57 AM
Hola GGrayonar

Tienes que usar alguna de las funciones que te permite obtener su Instance ID.
Game maker tiene varias formas, puedes usar "instance_nearest" para obtener el ID del objeto más cercano a las coordenadas que indiques. Puedes usar "instance_place" que es similar al place_meeting pero devuelve el ID del objeto con el que colisiones.
Incluso en un evento de colisión, el ID con el que colisiones es "other.id".
Si quieres conocer el ID del objeto al que le haces clic puedes usar "instance_position". Etc.
Según lo que necesites hacer es la función que mejor se acomode a tus necesidades

Una vez que tengas el ID, lo colocas en la siguiente función:
with (<instance ID aquí>) { instance_destroy() }
Eso hará que todos los objetos que tengan el ID que indicaste, se destruyan (o sea 1 solo porque los ID son únicos)

Saludos
Título: Re:destruir un obj
Publicado por: GGrayonar en Septiembre 12, 2018, 01:45:42 AM
lo que pasa es que no entiendo como descubrir la id del obj en cuestion
Título: Re:destruir un obj
Publicado por: BssString en Septiembre 12, 2018, 02:03:34 AM
Hola GGrayonar

Todo depende de la condición que se debe cumplir para que elimines el objeto. Si ni tu la sabes, entonces poco puedo hacer para ayudarte.

Te mostraré unos ejemplos de las funciones que puedes utilizar:

Si quieres encontrar el objeto más cercano, usa: "instance_nearest"
Si quieres encontrar el objeto con el que colisionarás si te desplazas, usa: "instance_place"
Si quieres encontrar el objeto que se ubica en cierta coordenada, usa: "instance_position"
Si estás en un evento colisión y quieres eliminar el objeto con el que chocas, usa: "other.id"
Si quieres encontrar uno al azar, usa: instance_find(object_index,irandom(instance_number(object_index) - 1))

Si tu condición no está en ninguna de esas alternativas, podrías explicar bajo qué condiciones deseas eliminar al objeto.

Saludos
Título: Re:destruir un obj
Publicado por: GGrayonar en Septiembre 12, 2018, 02:17:06 AM
mi condicion es la de other.id. voy a investigar gracias