Febrero 08, 2018, 04:06:53 PM Ultima modificación: Febrero 08, 2018, 06:10:07 PM por matiascarpello
Hola gente.

   Tengo la siguiente duda.

En mi juego se crea un objeto pared, y necesito que todos los objetos que colisionen con el objeto pared se destruyan.

Podría solucionarlo utilizando el evento collition en cada uno de los objetos que quiero que se destruyan. El problema es que eso consumiría muchísimos recursos, porque son más de 100 diferentes los que tiene que destruir el objeto pared.

Por eso quería saber si hay alguna forma de que en el evento create del objeto pared, se pueda utilizar alguna función de que todo lo que colicione con el objeto pared sea destruido. De esa forma utilizaría unas simples líneas de código en un solo objeto y en el evento create el lugar de estar añadiendo códigos a más de 100 objetos diferentes.

Bueno no se muy bien como se podria hacer esto pero pongo una idea para ir probando.

Se me ocurre que puedes crear una lista "array" y que los objetos esten identificados en ella de la siguiente manera:

objeto[0] = 1;
objeto[1] = 1;
objeto[2] = 1;

Entonces una vez hecha la lista intentar controlarla desde la pared, en el evento collision que identifique que objeto de la lista a colisionado, si el 1 o el 2 o el 3 y ponerlo a cero. Es decir si el objeto que colisiona es el [1] pues la lista quedaria asi:

objeto[0] = 1;
objeto[1] = 0;
objeto[2] = 1;

Y cuando el objeto en concreto vuelva a aparecer como ya esta identificado en el array el [1] pasaria de nuevo a ser = 1 sin necesidad de volver a crear otro nuevo objeto en la lista.

No se todo es probarlo.

porque major no haces un parent y que este tome el codigo generic, por ejemplo:

PARENT_WALL
|
-> COLLISION EVENT
{
//eliminar todos
other.destroy();

//eliminar ciertos objetos
if( other.tag == "enemy"){other.destroy()}

}


asi cuando un objeto colisione con la pared sera destruido, si quieres que ciertos objetos sean destruidos como enemigos,
ponle una variable al objeto, algo como un tag, y al destruir el objeto checas si tiene el tag "enemy" por ejemplo, si lo es,
entonces lo destruyes
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala