Buenas! Quiero hacer un juego tipo Bomberman, para lo cual hice un actor Bomba que crea actores Explosión, este actor debería de dejar de clonarse al detectar una pared, lo cual lo manejo con una variable (flag_der)
Aquí parte del código:
Según el interprete, es correcto lo que estoy haciendo, no detecta nada en this.x+32 (flag_der sigue en true) y detecta algo en this.x+64(flag_der deberia ponerse en false pero no lo hace)
Hola @Jorge!, estuve mirando el código y no encontré muy bien dónde puede estar el problema. Tengo la sospecha que el problema puede venir porque esa variable flag_der no pasa a tener el valor false dentro del bucle…
Hagamos una prueba: en lugar de usar esa variable de control, probá cortando la ejecución del bucle “for” en cuanto encuentres una pared con la palabra reservada “break”.
// intenta crear explosiones hacia la derecha
for (let i = 0; i < cantidad; i++) {
if (this.pilas.existe_actor_con_etiqueta_en("muro", x + i * 64, y)) {
break;
}
this.pilas.clonar_en("explosion", x + i * 64, y);
}
Te paso una prueba que hice usando la misma idea de tu código pero con “break;” en lugar de la variable de control: