Error al eliminar un actor con imagen

en otra parte del codigo pude eliminar correctamente un actor con imagen, no logro entender porque en esta oración me salta un error.

cuando_colisiona(actor: Actor) {
    let center = this.pilas.obtener_actor_por_nombre("center");
    if (actor.tiene_etiqueta("starship1") && this.shoted_by == 2 && actor.spin == 0) {
        this.eliminar();
        this.pilas.camara.vibrar(intensidad = 2, tiempo = 0.2)
        if (center.target == "center") {
            center.target = "starship2";
        }
        actor.eliminar(); //no funciona
    }
    if (actor.tiene_etiqueta("starship2") && this.shoted_by == 1 && actor.spin == 0) {
        this.eliminar();
        this.pilas.camara.vibrar(intensidad = 3.5, tiempo = 0.2)
        if (center.target == "center") {
            center.target = "starship1";
        }
    }
    if (actor.tiene_etiqueta("bullet")) {
        this.eliminar();
        actor.eliminar(); //funciona
        this.pilas.camara.vibrar(intensidad = 2, tiempo = 0.1)
    }
}

Hola @Pan, probá con la versión nueva por favor, que tiene muchas correcciones importantes.

Otro detalle, fijate que la función vibrar de la cámara no se tiene que llamar con los argumentos tipo intensidad = 2 sino que simplemente hay que poner el valor. Por ejemplo:

this.pilas.camara.vibrar(2, 0.2)

en lugar de:

this.pilas.camara.vibrar(intensidad = 2, tiempo = 0.2)

¡Avisame cualquier cosa!

Estoy usando la 2.1.1

Aqui te dejo el codigo para que compruebes si es un posible bug o error mio;

Ahhhh, ahí veo… el problema viene porque las naves se eliminan y el actor centro no puede acceder a ellas…

Hice una prueba y eliminé el error cuando se mata a una de las naves:

Pienso que habría que hacer lo mismo con la otra nave, pero no llegué a ver bien el código. Más tarde lo reviso mejor.

Ah, hay una función llamada this.pilas.existe_un_actor_llamado("nombre") que te puede servir para consultar si los actores están vivos también.

PD: me gusta mucho el estilo retro del juego :slight_smile:

1 Like