studio programacion para móviles libros gratis español edición desarrollo desarrollar curso aprende aplicaciones android cpu-speed

programacion - Bucle de juego de Android, cómo controlar la velocidad y la velocidad de fotogramas



manual programacion android español pdf (1)

Escribí un juego para Android y lo probé en el Dev Phone 1. Funciona perfectamente, la velocidad es la correcta. Sin embargo, estoy seguro de que las CPU del teléfono son cada vez más rápidas. Puede que ya sean más rápidos que el teléfono dev.

¿Cómo me aseguro de que mi juego se ejecute a la misma velocidad sin importar qué dispositivo o qué tan rápido funcione? ¿Conoces alguna técnica? ¿Debo revisar algún tipo de temporizador en la parte superior del bucle cada vez?

Supongo que me refiero a la velocidad de fotogramas, pero sobre todo a la velocidad a la que mi juego se ejecuta en el circuito principal del juego.

¡Cualquier teoría o experiencia sería genial! Gracias.


Si está apuntando a cierta velocidad de cuadros, la idea básica es que debe tener un temporizador o hilo que ejecute el método de tictac de su juego en los intervalos deseados. Con los temporizadores, la implementación es bastante trivial: solo programe un temporizador para que se ejecute a intervalos regulares. Cuando use subprocesos, debe poner el subproceso en suspensión entre tics consecutivos si se ejecuta más rápido que la velocidad de cuadros deseada.

Sin embargo, esto solo no conduce a los mejores resultados posibles ya que el intervalo puede variar un poco entre los marcos. Hay un artículo muy bueno sobre este tema: http://gafferongames.com/game-physics/fix-your-timestep/ .

Además, ya hay teléfonos Android más lentos y rápidos que el teléfono dev 1. Así que tienes que prepararte para ambos casos si estás apuntando a todos los dispositivos Android. Si su juego no tiene una gran cantidad de CPU, es posible que pueda lograr la velocidad de cuadros deseada en todos los dispositivos. Pero si no limita la velocidad de cuadros, su juego será demasiado rápido en los teléfonos Android más rápidos.