No mínimo, um jogo Android do OpenGL tem um thread da interface do usuário e um renderizador criado por GLSurfaceView
. Renderer.onDrawFrame()
deve fazer um trabalho mínimo para obter o maior FPS. A física, a IA etc. não precisam executar todos os quadros, para que possamos colocá-los em outro segmento. Agora temos:
- Thread do renderizador - Atualize animações e desenhe polys
- Tópico do jogo - atualizações de lógica e física periódica, IA, etc.
- Thread da interface do usuário - somente interação com a interface do Android
Como você nunca deseja bloquear o thread da interface do usuário, eu corro mais um thread para a lógica do jogo. Talvez isso não seja necessário? Existe alguma razão para executar a lógica do jogo no thread do renderizador?
fonte