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
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]
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
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"
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
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]
¡muchas gracias! me ha servido, doy esto como resuelto