Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Ares074 en Enero 26, 2018, 09:31:06 PM

Título: Uso de listas para encontrar y eliminar un objeto
Publicado por: Ares074 en Enero 26, 2018, 09:31:06 PM
Hola estoy creando un juego tipo rpg , e creado un objeto con una flecha que selecciona a que enemigo atacar y el personaje ataca al enemigo que este seleccionado, e creado dos enemigos
y dos objetos llamados eni1 y eni2 estos son los objetos que pongo en la room y crean a los enemigos de forma random los objetos tienen la variable vida cuando el personaje ataca y la vida llega a cero se elimina el objeto eni que tenga la vida en 0 , hay veces que  los objetos eni crean al mismo enemigo y si se eliminan se eliminan todos los enemigos iguales lo que quiero es que solo se elimine el enemigo que esta seleccionado

para seleccionar a los enemigos creo un a lista con
enemigos = ds_list_create();
ds_list_add(enemigos, eni1,eni2);


y en el evento steep pongo esto
if n>3 n=0

x1=ds_list_find_value(enemigos,n).x
y1=ds_list_find_value(enemigos,n).y
obj_selec_eni.x=x1
obj_selec_eni.y=y1


intente con este codigo para eliminar al enemigo que este seleccionado con la flecha pero no funciona
x1=ds_list_find_value(enemigos,n).x
y1=ds_list_find_value(enemigos,n).y

var inst = instance_position(x1, y1, obj_eni);

if inst {
   with inst instance_destroy();
}

creo que se podría hacer también con una lista y usar index=ds_list_find_index para saber el index del enemigo y asi eliminarlo pero no se bien como
Título: Re:Uso de listas para encontrar y eliminar un objeto
Publicado por: somnus en Enero 27, 2018, 02:40:11 AM
una lista funciona, asi como un array, en fin, lo que sucede es que se eliminan todos porque no estas indicando cual es el id del objeto que solo quieres eliminar, primero identifica cual es el objeto al que le vas a hacer dano, si lo matas busca ese ID de la lista y remueve ese ID de la lista y posteriormente destruyes ese objeto.