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
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.