jumpdontdie icon indicating copy to clipboard operation
jumpdontdie copied to clipboard

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

Open JortonMV opened this issue 9 years ago • 4 comments

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

JortonMV avatar Aug 03 '16 17:08 JortonMV

Lo he podido reproducir.

Pendiente de investigar.

danirod avatar Aug 04 '16 13:08 danirod

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

JortonMV avatar Aug 05 '16 12:08 JortonMV

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?

danirod avatar Aug 05 '16 13:08 danirod

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

JortonMV avatar Aug 05 '16 13:08 JortonMV