Hola comunidad, primero antes de todo, dejo una imagen para su comprension


como se puede apreciar, tengo un obj_mensaje y de el mismo hay 2 copias en la room, ahora cuando el player colisiona con el obj_mensaje , el obj_mensaje crea una instancia llamada object2. Mi dificultad se genera aqui.

Cuando hago una primera colision con un obj_mensaje, perfectamente muestra la instancia del object2, pero si colisiono con otro
obj_mensaje distinto, ahi es mi error, no es que me genera error, sino que no ejecuta la instancia object2.

¿Como puedo solucionar este problema?

Hola royer11

No deberia haber problemas. En el ojeto mensaje, crea un evento de colisión con el player y ponle:
instance_create(x,y,object2)
Instance_destroy()

Eso hace que el objeto mensaje cree el objeto 2 en su misma ubicación y se autodestruya para evitar que se generen un object2 en cada step que el player colisiona con el mensaje

Cada mensaje es independiente y ejecuta su código por separado, si destruyes uno, no se destruyen los demás

Saludos

Gracias, en mi situación los objetos mensajes los uso como cuadros de ayuda y por ende no puedo eliminarlos, trataré de hacer una inspección a fondo.

Hola royer11

En ese caso creales una variable de colisión
Ej:
detectar = false

Reemplaza el evento colisión por el evento step.
En el step event del objeto mensaje pone:
If place_meeting(x,y,obj_player) {
if detectar=false {
instance_create(x,y,object2)
detectar=true
}
}
else {
detectar = false
}

Eso hará que detecte la colisión una sola vez y la vuelva a detectar si sales y entras denuevo en el rango de colisión

Ojo que eso no evita el problema de generar muchos object2, tienes que buscar una manera de hacerlos desaparecer después

Saludos

Acabo de subir el proyecto, puedes por favor ver como es el problema?