Soy nuevo en Game Maker y pude llegar a crear un juego de plataformas básico , pero tengo un problema , lo que pasa es que cuando mi personaje muere se crashea
y ya se por que sucede y, es que el personaje tiene una arma que es otro objeto, al morir el personaje sin el arma puesta sucede todo bien , ahora lo que quiero saber es como puedo hacer que el objeto que seria el arma se destruyera al morir el personaje ?.

Declare una variable que se haga true cuando el personaje muera. Por ejemplo:
En Create Event del personaje.
global.vida_personaje=true {//está vivo}
global.vida_personaje=false {//está muerto}

en Step Event
if global.vida_personaje=false{with(arma){instance_destroy()}}

Prueba a ver. Puede haber mejores ideas, pero yo lo haría así
La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.

Cita de: kaliman777 en Abril 09, 2020, 11:34:45 PM
Declare una variable que se haga true cuando el personaje muera. Por ejemplo:
En Create Event del personaje.
global.vida_personaje=true {//está vivo}
global.vida_personaje=false {//está muerto}

en Step Event
if global.vida_personaje=false{with(arma){instance_destroy()}}

Prueba a ver. Puede haber mejores ideas, pero yo lo haría así

Funciona éste método, pero es muy tedioso, todas las instancias tienen un evento de destrucción (destroy), que como el nombre lo dice, se ejecuta al destruirse la instancia, aquí declaras todo lo que quieres que suceda al destruirse cierta instancia. Siguiendo tu ejemplo, es algo así:

[gml]
///Evento Destroy
with (objArma) instance_destroy();
[/gml]

Cómo dices que eres nuevo te explicaré en qué consiste el código. Con la función with le indicas al código que tiene que ejecutarse en el objeto que le indiques entre paréntesis, y con la función instance_destroy, al estar después de la función with, se destruye la instancia del objeto arma.

podes tambien usar la funcion  instance_exists(...) para determinar si existe una instancia del jugador si no existe destruis el arma

[gml]
if (instance_exists(obj_jugador) == false)
    instance_destroy();
[/gml]