2010-02-15 10 views
18

He escrito un juego para Android, y lo he probado en el Dev Phone 1. Funciona perfectamente, la velocidad es la correcta. Sin embargo, estoy seguro de que la CPU del teléfono se está volviendo más rápida. Es posible que ya sean más rápidos que el teléfono dev.Android juego de bucle, cómo controlar la velocidad y velocidad de cuadro

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

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

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

+3

Algo para tener en cuenta: para los juegos, a veces los teléfonos más nuevos son más lentos. Tengo un juego OpenGL en el que estoy trabajando que hace 60FPS en un G1, pero solo 30-40 FPS en un Droid. El renderizador es diferente en el Droid y también tiene una pantalla de mayor resolución, lo que perjudica el rendimiento. –

Respuesta

15

Si tiene como objetivo determinada velocidad de fotogramas, la idea básica es que debe tener un temporizador o secuencia que ejecute el método de marcación de su juego en los intervalos deseados. Con los temporizadores, la implementación es bastante trivial: simplemente programe un temporizador para ejecutarlo a intervalos regulares. Al utilizar subprocesos, debe poner el subproceso en espera entre ticks consecutivos si se ejecuta más rápido que la velocidad de fotogramas deseada.

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

Además, ya hay teléfonos Android más lentos y más rápidos que el teléfono dev. Por lo tanto, debe prepararse para ambos casos si se dirige a todos los dispositivos Android. Si su juego no es tan pesado, es posible que pueda alcanzar la velocidad de cuadros deseada en todos los dispositivos. Pero si no limita la velocidad de fotogramas, su juego será demasiado rápido en los teléfonos Android más rápidos.

+0

Gracias, este artículo es un gran hallazgo y una implementación fácil sobre lo que ya he construido. –

+0

+1 Gracias @lauri el enlace que me dieron me ayudó mucho ... –

+0

¿Implementaron también la parte de "interpolación"? –

Cuestiones relacionadas