2012-04-16 2 views
0

3D 안드로이드 게임용 게임 프레임 워크를 만들려고합니다. 나는이 자습서를 사용하여 할android opengl with surfaceHolder.lockCanvas()

http://www.javacodegeeks.com/2011/07/android-game-development-game-loop.html

을 시도하고 있었고, 난 2 차원 게임 프레임 워크 작업을 얻을 수 있었다. 이 자습서에서는 Android의 OpenGL 기능을 사용하는 방법을 계속 설명하지만 게임 프레임 워크에서는 사용하지 않습니다.

내 질문은 내 업데이트를 호출하고 메서드를 그리기 위해 별도의 스레드를 사용하기 때문에 안드로이드 OpenGl GL10 클래스로 캔버스에 대한 작업을 수행하는 것과 같습니다. 이것은 OpenGL을 GL10 클래스를 사용하여 내 프로그램의 유일한 개체를해야하지만

try 
{ 
    canvas = this.surfaceHolder.lockCanvas(); 
    synchronized (surfaceHolder) 
    { 
     //Update and draw code here 
    } 
} 
finally 
{ 
    surfaceHolder.unlockCanvasAndPost(canvas); 
} 

, 나는 내가 GL10 카메라를 제어 할 수 있습니다 이것이 최선의 방법 인 경우에 그것을 할 수 있는지 확인하려면?

답변

1

캔버스 API와 표면 홀더 물건에 대해 잘 모르겠다. 그러나 Android에서 OpenGL을 사용하면 GLSurfaceView이 원하는 것 (code) 인 것 같습니다. SurfaceView에서 파생되며 낮은 수준의 표면 관리를 위해 EGL을 사용합니다. 이미 렌더링을위한 두 번째 스레드를 시작하여 Renderer 메서드를 호출합니다. 너는 threading model of Replica Island을 조사하고 싶을 수도있다; Chris는 게임 세계를 업데이트하기 위해 세 번째 스레드를 사용합니다.