Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: julianxx9 en Marzo 03, 2016, 01:53:54 AM

Título: [Resuelto]Como Obtener id de otra instancia
Publicado por: julianxx9 en Marzo 03, 2016, 01:53:54 AM
Buenas. Tengo un objeto bala que es disparado por un objeto jugador, quiero que esta bala hiera a otro objeto jugador, vero yo se que si  chequeo la colision con el objeto jugador y los hiera afectara al que esta accionando la bala osea el mismo objeto jugador, me gustaria tener la id del objeto al cual impactara la bala
Título: Re:Como Obtener id de otra instancia
Publicado por: bygdle en Marzo 03, 2016, 01:57:22 AM
Cuando un objeto colisiona con otro, en el evento Collision es posible encontrar la id de la instancia con la que colisionó, usando la constante other. Así:
[gml]
other.vida -= 1;
[/gml]
Título: Re:Como Obtener id de otra instancia
Publicado por: julianxx9 en Marzo 03, 2016, 02:12:14 AM
el codigo que enviaste elimina la instancia que genera la bala, ya que en el evento de colision de la bala contra el objeto jugador colocar other.vida-=1; afecta al jugador ya que este es otro objeto, no se si me di a entender
Título: Re:Como Obtener id de otra instancia
Publicado por: bygdle en Marzo 03, 2016, 02:17:49 AM
Hmmm... sinceramente soy bastante tontuelo y no te logro comprender :-[ xD
La constante other equivale a la otra instancia involucrada en la colisión. Es decir, que en un evento colision de "obj" con "obj2", other equivaldría a "obj2"
Título: Re:Como Obtener id de otra instancia
Publicado por: julianxx9 en Marzo 03, 2016, 02:44:59 AM
seguramente no me di a entender, algunas veces me pasa, lo explicare con una imagen, al crearse la bala seria cerca del obejto jugador que dispara, por cerca me refiero a tocarlo es hay donde en el objeto bala del evento de colision correria el codigo de: other.vida-=1; eliminando el objeto que creo la bala y no al otro objeto jugador
Título: Re:Como Obtener id de otra instancia
Publicado por: bygdle en Marzo 03, 2016, 02:53:46 AM
Ah, vale, vale, ahora sí XD
Lo que puedes hacer es crear la bala con una variable que guarde la id del objeto que la creó, y al colisionar con una isntancia, compruebe que si no fue él quien la creó, puede destruírlo:
Al crear la bala:
[gml]
var bala = instance_create(x, y, obj_bala);
bala.mipapitoxd = id;
[/gml]

En el colision de la bala con el player
[gml]
if other.id != mipapitoxd
other.vida -= 1
[/gml]
Título: Re:Como Obtener id de otra instancia
Publicado por: julianxx9 en Marzo 04, 2016, 01:41:09 AM
¡muchas gracias! me ha servido, doy esto como resuelto