pilas-engine

Bug con los bordes de la camara

Hola, estoy haciendo un juego de plataformas en el que no puedes ir hacia atrás y sólo puedes avanzar. Para ello puse un actor aparte el cual controla la cámara con el siguiente código:

//dentro del actor camara
  actualizar() {
    this.camara.seguir_al_actor(this);
    if(this.jugador.x > this.x) {
      this.x = this.jugador.x
    }
  }

Y para evitar que el jugador no pueda volver hacia atrás uso lo siguiente:

//dentro del actor jugador, en actualizar()
    this.borde = this.camara.borde_izquierdo + 50;
    if (this.x < this.borde) {
      this.x = this.borde;
    }

Sucede que el borde izquierdo de la cámara no parece ser realmente el borde izquierdo, pues su coordenada va hacia atrás.


Aquí un ejemplo de lo que digo:

Apenas comienzas, el codigo funciona y no puedes ir hacia atrás, pero si avanzas (como en las imagenes) el borde ya no es el borde y por tanto si puedes ir hacia atras y salirte de la cámara.

Está me parecia la forma más fácil de evitar que pueda el jugador volver hacia atrás, probé de varias maneras y el resultado es igual. No queda otra que poner una pared e ir moviendola por detrás del jugador :frowning:

Oh, es verdad @lukeitor, pilas tiene un bug ahí en ese borde izquierdo. Voy a repararlo en la semana.

Mientras tanto, vas a poder evitarte este error reemplazando la siguiente
linea dentro del método actualizar del actor:

this.borde = this.camara.borde_izquierdo + 50;

y cambiarla por esta otra:

this.borde = this.camara.x - 230;

¡Abrazo!

1 Like

gracias @hugoruscitti no se me habia ocurrido tomar como referencia a las coordenadas de la cámara en si.