Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

La cámara avanza un poco más rápido que el personaje #1

Open
JortonMV opened this issue Aug 3, 2016 · 4 comments
Open

La cámara avanza un poco más rápido que el personaje #1

JortonMV opened this issue Aug 3, 2016 · 4 comments
Assignees
Labels

Comments

@JortonMV
Copy link

JortonMV commented Aug 3, 2016

Estoy siguiendo tus vídeos en Youtube para hacer este juego y me he dado cuenta de que la cámara avanza más rápido que el personaje.
He instalado la app desde el Play Store para comprobarlo y hacer unas capturas.
photo_2016-08-03_19-05-48
photo_2016-08-03_19-05-42

@danirod danirod added the bug label Aug 4, 2016
@danirod danirod self-assigned this Aug 4, 2016
@danirod
Copy link
Owner

danirod commented Aug 4, 2016

Lo he podido reproducir.

Pendiente de investigar.

@JortonMV
Copy link
Author

JortonMV commented Aug 5, 2016

He encotrado una solución...
Si sustituyescamera.translate(PLAYER_SPEED * delta * PIXELS_IN_METER, 0, 0);
por camera.position.x = player.getX(); el jugador tiembla mucho.

Pero si mantienes:
camera.translate(PLAYER_SPEED * delta * PIXELS_IN_METER, 0, 0);
y añades:
camera.position.x = player.getX();
casi se soluciona el problema, ya que el jugador aún tiembla un poquito. Así que, en vez de esa línea, es mejor interpolar (0.5 es el valor que mejor me ha funcionado):
float lerp = 0.5f;
camera.position.x = camera.position.x +(player.getX() - camera.position.x) * lerp;

Resultado:
captura

@danirod
Copy link
Owner

danirod commented Aug 5, 2016

Sí, ayer le eché un vistazo rápido y está claro que es la cámara. El problema está en las multiplicaciones con decimales que hace la cámara en el método translate. Debe haber discrepancias a la hora de calcular los valores de delta que provocan que la cámara acelere, por ejemplo que no haya precisión suficiente o que los valores de delta no sean del todo precisos.

La forma más correcta de solucionar esto es parecido a lo que propones. Simplemente con interpolar los valores y no fiarse del timestep. Hay una forma más profesional de realizar actualizaciones que dependen del tiempo descritas en este artículo. Incluso yo mismo hablé de ello en una lista de reproducción sobre otra librería distinta.

Es algo que voy a seguir de cerca pero a lo que tampoco voy a dar mucha prioridad en este momento porque a título personal no me conviene.

PS: Hace poco alguien puso en un hilo en el grupo de Facebook un problema parecido con la cámara y la velocidad de Minijoe. ¿Eres la misma persona o se trata de otro reporte independiente?

@JortonMV
Copy link
Author

JortonMV commented Aug 5, 2016

No, el de Facebook no soy yo xD
Miré los comentarios de los vídeos de YouTube y me extrañaba que nadie se hubiera dado cuenta....

Bueno, yo de momento creo que me conformo con esta solución para no complicarme la vida demasiado xD

danirod pushed a commit that referenced this issue Dec 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants