Co najmniej gra OpenGL na Androida ma wątek interfejsu użytkownika i wątek renderujący utworzony przez GLSurfaceView
. Renderer.onDrawFrame()
powinien wykonywać minimum pracy, aby uzyskać najwyższy FPS. Fizyka, sztuczna inteligencja itp. Nie muszą uruchamiać każdej klatki, więc możemy umieścić je w innym wątku. Teraz mamy:
- Wątek renderowania - Aktualizuj animacje i rysuj polisy
- Wątek z gry - Logika i okresowe aktualizacje, sztuczna inteligencja itp
- Wątek interfejsu użytkownika - tylko interakcja interfejsu użytkownika Androida
Ponieważ nigdy nie chcesz blokować wątku interfejsu użytkownika, uruchamiam jeszcze jeden wątek dla logiki gry. Może to nie jest konieczne? Czy kiedykolwiek istnieje powód, aby uruchamiać logikę gry w wątku renderera?
źródło