2010-02-15 14 views
18

Ho scritto un gioco per Android, e l'ho provato sul Dev Phone 1. Funziona perfettamente, la velocità è giusta. Tuttavia, sono sicuro che le CPU del telefono stanno diventando più veloci. Potrebbero essere già più veloci del telefono dev.Ciclo di gioco Android, come controllare velocità e frame rate

Come faccio ad assicurarmi che il mio gioco sia eseguito alla stessa velocità, indipendentemente dal dispositivo o dalla sua velocità? Conosci qualche tecnica? Devo controllare qualche tipo di timer all'inizio del loop ogni volta?

Penso che mi riferisco al frame rate, ma soprattutto alla velocità con cui il mio gioco scorre attraverso il loop principale del gioco.

Qualsiasi teoria o esperienza sarebbe eccezionale! Grazie.

+3

Solo qualcosa a cui prestare attenzione: per i giochi, a volte i telefoni più recenti sono più lenti. Ho un gioco OpenGL su cui sto lavorando che fa 60FPS su un G1, ma solo 30-40 FPS su un Droid. Il renderizzatore è diverso sul Droid e ha anche uno schermo con risoluzione più alta, il che danneggia le prestazioni. –

risposta

15

Se si mira a determinati frame rate, l'idea di base è che si dovrebbe avere un timer o un thread che esegua il metodo di tick del gioco agli intervalli desiderati. Con i timer l'implementazione è piuttosto banale: basta programmare un timer da eseguire a intervalli regolari. Quando si utilizzano i thread è necessario mettere il thread in stop tra tick consecutivi se viene eseguito più velocemente del frame rate desiderato.

Tuttavia, questo da solo non porta ai migliori risultati possibili in quanto l'intervallo può variare un po 'tra i frame. C'è un ottimo articolo su questo problema: http://gafferongames.com/game-physics/fix-your-timestep/.

Inoltre, ci sono già telefoni Android più lenti e più veloci rispetto al telefono Dev 1. Quindi è necessario prepararsi per entrambi i casi se si stanno prendendo di mira tutti i dispositivi Android. Se il tuo gioco non è così pesante per la CPU, potrebbe essere che puoi ottenere la frequenza fotogrammi desiderata su tutti i dispositivi. Ma se non limiti la frequenza dei fotogrammi, il tuo gioco sarà troppo veloce sui telefoni Android più veloci.

+0

Grazie, questo articolo è un'ottima scoperta e un'implementazione semplice su ciò che ho già realizzato. –

+0

+1 Grazie @lauri il collegamento mi ha aiutato molto .. –

+0

hai implementato anche la parte "interpolazione"? –

Problemi correlati