danirod / jumpdontdie

Source code for the Android game developed on my YouTube tutorial. Made using libGDX, Scene2D, Box2D.
https://www.youtube.com/playlist?list=PLraIUviMMM3duiko5MtkFPN2vhm0URmkE
GNU General Public License v3.0
55 stars 36 forks source link

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

Open JortonMV opened 7 years ago

JortonMV commented 7 years ago

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 commented 7 years ago

Lo he podido reproducir.

Pendiente de investigar.

JortonMV commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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