Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: royer11 en Agosto 03, 2018, 02:15:33 PM

Título: ¿Como hago para que las copias de un objeto en room tengan colisiones iguales?
Publicado por: royer11 en Agosto 03, 2018, 02:15:33 PM
Hola comunidad, primero antes de todo, dejo una imagen para su comprension
(http://www.mediafire.com/convkey/9e45/izipc83g5c667ih7g.jpg)

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?
Título: Re:¿Como hago para que las copias de un objeto en room tengan colisiones iguales?
Publicado por: BssString en Agosto 03, 2018, 02:49:31 PM
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
Título: Re:¿Como hago para que las copias de un objeto en room tengan colisiones iguales?
Publicado por: royer11 en Agosto 03, 2018, 02:57:27 PM
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.
Título: Re:¿Como hago para que las copias de un objeto en room tengan colisiones iguales?
Publicado por: BssString en Agosto 03, 2018, 03:18:12 PM
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
Título: Re:¿Como hago para que las copias de un objeto en room tengan colisiones iguales?
Publicado por: royer11 en Agosto 03, 2018, 03:51:03 PM
Acabo de subir el proyecto, puedes por favor ver como es el problema?