La mejor manera de hacer el bucle del juego para Android usando OpengGLSurface

De lo que he visto, si quiero hacer un bucle de juego NON-opengl lo que puedo hacer es tener un hilo de juego que durante el bucle actualizará el estado del juego (o la física del juego) y también actualizará los gráficos bloqueando un Canvas de Una (normal) SurfaceView , haciendo el dibujo a través de los métodos Canvas.drawXXX (…) y desbloqueándolo en qué punto los gráficos se actualizan para el bucle.

Realmente no entiendo cómo hacerlo cuando se utiliza GLSurfaceView y Renderer . Por lo que entiendo, ya no puedo tener mi juego hecho a mano Thread a la demanda como lo hice con la superficie regular y es Canvas , porque ahora hay un hilo de renderizado que llamará Renderer.onDrawFrame() (en mi implementación del renderizador Clase que paso al GLSurfaceView).

Mi pregunta es entonces, ¿cuál es una buena manera de hacer un bucle de juego con GLSurfaceView y Renderer? ¿Debo seguir haciendo mi hilo de juego independiente, pero sólo manejar las actualizaciones de estado de juego (física) en él y luego usar ese estado de juego en mi implementación de Renderer.onDrawFrame () para dibujar gráficos en función del estado actual? ¿Debería usar el hilo del Rendere también para hacer actualizaciones de estado?

Bueno, como resulta, el mejor camino a seguir es usar el hilo proporcionado por GLSurface. El gancho a lo que viene a través de una aplicación de la interfaz Renderer. Efectivamente, el método onDrawFrame () de Renderer puede considerarse análogo al método run () de Thread normal. Este tipo de lanzamientos hacia fuera la ventana el concepto de un paradigma fijo de las actualizaciones por segundo (no realmente, pero es demasiado enredo a hacer en este contexto) pero por otro lado usted consigue las actualizaciones gráficas óptimas.

Hay un gran tutorial sobre Android y OpenGL aquí:

http://insanitydesign.com/wp/projects/nehe-android-ports/

  • AndroidGameView + GC_MINOR
  • Rendimiento lento de glTexSubImage2D en Nexus 10 / Android 4.2.2 (Samsung Exynos 5 con Mali-T604)
  • La previsualización de la cámara Android se extendió utilizando el código Grafika CameraCapture
  • Convertir coordenadas de pantalla a coordenadas de OpenGL
  • la animación adview admob hace que glsurfaceview se retrasa
  • ¿Por qué eclipsar mi textura con el color?
  • Alternativa para glBlitFrameBuffer () en OpenGL ES 2.0
  • Android OpenGL que extiende las excepciones de puntero nulo de GLSurfaceView
  • Uso de OpenGL para reemplazar Canvas - Android
  • Cómo acelerar la representación con OpenGL (ES) 2 Android
  • Cómo llenar cada lado de un cubo con texturas diferentes en OpenGL ES 1.1?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.