2010-10-22 15 views
7

Sto provando a scrivere un po 'di scheletro per un gioco su Android, usando OpenGL. Mi piacerebbe sapere, dove dovrei inserire il mio codice del ciclo di gioco principale?Dove posizionare il ciclo di gioco principale nel gioco Android

Finora, il mio miglior candidato è il metodo Renderer.onDrawFrame (...), che sembra di essere chiamato per ogni fotogramma, in modo che il codice simile a questo:

void onDrawFrame(GL10 gl) 
{ 
    preLoopActions(); 

    m_gameScene->onUpdate(); 
    m_gameScene->onRender(gl); 

    postLoopActions(); 
} 

C'è un approccio migliore? Non mi piace perché 1) Devo mescolare l'aggiornamento e il rendering nel posto, dove Android si aspetta solo il rendering, e 2) questo metodo sembra essere chiamato da un "thread di rendering" separato, che aumenta la complessità del gioco.

risposta

1

Avete considerato di lavorare con framework come AndEngine. Ha qualcosa chiamato GameActivity che rende la vita abbastanza facile. Gli esempi sono abbastanza facili da capire.

2

Separare la logica di matematica e disegno. Quello che vuoi è creare un thread che abbia un ciclo di esecuzione in quel ciclo tu esegua la parte math() e poi chiama la parte render() quando hai quel lavoro ci sono alcune tecniche per controllare i tempi del ciclo.

Problemi correlati