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:
https://app.pilas-engine.com.ar/#/proyecto/05559adc-9898-42ae-8f5a-c0d8dca14d5e
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