2010-10-22 12 views
7

Próbuję napisać szkielet do gry na Androida, używając OpenGL. Chciałbym wiedzieć, gdzie powinienem umieścić mój główny kod pętli gry?Gdzie umieścić główną pętlę gry w androidzie

tej pory mój najlepszy kandydat (...) Metoda Renderer.onDrawFrame, który wydaje się być nazywany per-frame, więc kod wygląda następująco:

void onDrawFrame(GL10 gl) 
{ 
    preLoopActions(); 

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

    postLoopActions(); 
} 

Czy istnieje lepsze podejście? Nie podoba mi się to, ponieważ 1) muszę mieszać aktualizację i renderowanie w miejscu, gdzie android oczekuje mnie tylko do renderowania, i 2) ta metoda wydaje się być wywoływana z osobnego "wątku renderującego", co zwiększa złożoność gry.

Odpowiedz

1

Czy rozważałeś pracę z frameworkiem takim jak AndEngine. Ma coś zwanego jako GameActivity, co czyni życie całkiem łatwym. Przykłady dość łatwe do zrozumienia.

2

Oddziel logikę matematyczną i rysunkową. To, czego chcesz, to utworzenie wątku, który ma pętlę uruchamiania w tej pętli. Uruchomienie części matematycznej(), a następnie wywołanie części render(), gdy masz taką pracę, są pewne techniki kontrolowania czasu pętli.