Buenos días.
Llevo intentando desde hace unos días hacer una versión ligeramente modificada del ejemplo de los fantasmas. El problema es que me gustaría hacerlo con monedas en vez de fantasmas (pero con la misma máscara negra del ejemplo), y que éstas desaparezcan al hacer clic sobre ellas.
Sin embargo, después de escribir el código, descubrí que esto no era posible, puesto que la máscara actúa como una capa que impide interactuar con otros actores. ¿Cómo podría solucionar este problema?
He aquí el código de la máscara:
class actor extends Actor {
iniciar() { }
actualizar() {
this.x = this.pilas.cursor_x;
this.y = this.pilas.cursor_y;
}
}
Y el de la moneda:
class moneda11 extends Actor {
velocidad_x: number
velocidad_y: number
izq: Sensor;
dcha: Sensor;
arriba: Sensor;
abajo: Sensor;
iniciar() {
this.animacion = "moneda";
this.velocidad_x = -2;
this.velocidad_y = -2;
this.izq = this.obtener_sensor("izq");
this.dcha = this.obtener_sensor("dcha");
this.arriba = this.obtener_sensor("arriba");
this.abajo = this.obtener_sensor("abajo");
}
actualizar() {
this.x += this.velocidad_x
this.y += this.velocidad_y
let izq = this.izq.cantidad_de_colisiones;
let dcha = this.dcha.cantidad_de_colisiones;
let arriba = this.arriba.cantidad_de_colisiones;
let abajo = this.abajo.cantidad_de_colisiones;
if (dcha == 1) {
this.velocidad_x = -2;
}
if (izq == 1) {
this.velocidad_x = 2;
}
if (arriba == 1) {
this.velocidad_y = -2;
}
if (abajo == 1) {
this.velocidad_y = +2;
}
}
cuando_hace_click() {
this.reproducir_sonido("moneda");
this.pilas.enviar_mensaje_global("subir_energia");
this.eliminar();
this.proyecto.moneda += 1;
}
}
Gracias.