:GMS:
Hola.
Estoy haciendo un juego plataformas 2D y algunos enemigos que tienen un tamaño un poco mayor a la media dejan un cadaver que despues desaparece. El problema es que los enemigos utilizan un objeto común (par_enemy) como parent. El protagonista reacciona sufriendo daño al colisionar con cualquier enemigo con este parent y mi problema es que no se como hacer que cambie el parent cuando el enemigo muere y deja un cadaver.
Se que podría arreglar esto creando un objeto aparte para el cadaver, pero no lo quiero hacer con cada enemigo para no cargar demasiado el juego de objetos.

Un saludo y gracias por vuestro tiempo.

#1 Diciembre 12, 2014, 02:19:32 AM Ultima modificación: Diciembre 12, 2014, 03:02:20 AM por penumbra
Si lo que quieres es que el cadáver no le quite vida al jugador, puedes hacer que al morir el enemigo, una variable dead cambie a true. Luego, en STEP

if (!dead)
{
    //código para dañar al jugador
}

Asi que cuando muera el enemigo, no provoca más daño. También, en lugar de la variable dead se puede usar sprite_index para ver si el enemigo posee el sprite del cadaver, con la misma finalidad.

if sprite_index != spr_cadaver
{
     // dañar al jugador
}

La función para cambiar de parent object_set_parent es obsoleta en GMS

si todos los enemigos mueren de la misma forma, utiliza un nuevo objeto, obj_cadaver, que tenga un parámetro que indique el sprite del cadáver.

seria algo asi a la hora de morirse:
[gml]var cadaver ;
cadaver=instance_create(x,y,obj_cadaver) ;
cadaver.sprite_index=spr_cadaver_rifle ;
instance_destroy() ;[/gml]