Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: jaimicko en Julio 19, 2014, 06:14:44 PM

Título: como hacer que 3 objetos se destruyan cuando se junten?
Publicado por: jaimicko en Julio 19, 2014, 06:14:44 PM
hola amigos necesito sabe como hacer para que cuando 3 objetos esten juntos se destruyan y antes no?
Título: Re:como hacer que 3 objetos se destruyan cuando se junten?
Publicado por: arcanite24 en Julio 19, 2014, 07:31:09 PM
Hola Jaimicko, no eres muy descriptivo en tu pregunta, pero aquí te dejo 2 posibles soluciones. Si no es lo que tu quieres hacer, no dudes en poner un poco mas explicada tu pregunta.

Puede que te refieras a que se "junten" como que existen 3 instancias iguales, entonces que se destruyan.
-Crea un objeto "Control" o si ya lo tienes agrega esto:
-Pon en el evento STEP:
if (instance_number(OBJETO QUE QUIERAS BORRAR) = 3) {
    with ( OBJETO QUE QUIERAS BORRAR ) { instance_destroy(); }
}

-Esto hara que cuando haya 3 objetos iguales se destruyan.




O puede que te refieras a que cuando las 3 colisionen entre sí.
En este caso lo que puedes hacer es:
-Agregar EVENTO de Colision con "Objeto" que quiras que se destruya, en este caso seria el mismo al que estas haciendo esto.
-Agrega un Execute Script con lo siguiente: instance_destroy();
-Esto hara que cuando colisione con otro objeto igual se destruya, por lo tanto si tienes 3 objetos que se "juntan" (colisionan), se van a destruir.
Título: Re:como hacer que 3 objetos se destruyan cuando se junten?
Publicado por: Guacusio en Julio 20, 2014, 01:12:36 AM
Cita de: arcanite24 en Julio 19, 2014, 07:31:09 PM

O puede que te refieras a que cuando las 3 colisionen entre sí.
En este caso lo que puedes hacer es:
-Agregar EVENTO de Colision con "Objeto" que quiras que se destruya, en este caso seria el mismo al que estas haciendo esto.
-Agrega un Execute Script con lo siguiente: instance_destroy();
-Esto hara que cuando colisione con otro objeto igual se destruya, por lo tanto si tienes 3 objetos que se "juntan" (colisionan), se van a destruir.


Yo creo que se refiere a este caso. Sin embargo, el código que propones destruiría las instancias cuando hay sólo 2 colisionando, no 3 que es lo que jaimicko pide.

Es importante aclarar que en el juego no hay objetos, hay instancias de objetos (así como en un programa en C++ los que interactúan son los objetos de clases y no las clases). Si las 3 instancias que quieres verificar que colisionan pertenecen a distintos objetos, puedes poner en el evento colisión de uno de ellos:

evento colisión de obj1 con obj2:
if place_meeting(x,y,obj3)
    {//si obj1 colisiona con obj3 además de obj2
    with instance_place(x,y,obj3)
        instance_destroy();//destruye la instancia asociada a obj3
    with other
        instance_destroy();//destruye la instancia asociada a obj2
    instance_destroy();//destruye la instancia asociada a obj1
    }