2012-07-01 3 views
1

현재 2D 그래픽 만 사용하는 게임을 개발 중입니다.SurfaceView에서 GLSurfaceView로 이동 하시겠습니까?

게임에서 나는 광범위하게 안드로이드의 SurfaceView을 사용하여 내 그래픽을 표시합니다. 하드웨어 가속 그래픽을 사용하는 GLSurfaceView을 들었습니다. 현재 SurfaceView 대신 내 앱의 성능을 향상시킬 수 있습니다.

현재, 나는 방법 update()render()이 내 자신의 스레드 클래스는 Thread을 확장하여 호출 될 때, 게임 상태를 렌더링 업데이트 및 SurfaceView를 확장하는 클래스를 가지고있다. 실은 기본적으로 거의 일정한 FPS를 유지하도록 도와줍니다. 이제 문제

: 어떻게 SurfaceView에서 GLSurfaceView로 변경하고 여전히 FPS에 대한 제어를 가지고, 업데이트하고 스레드에서 게임 상태를 렌더링하는 메소드를 호출 않습니다. OpenGL ES에 대한 안드로이드 문서를 읽었고 GLSurfaceView.Renderer을 사용하는 방법을 이해할 수 없습니다.

누가 쉽게 SurfaceView에서 GLSurfaceView으로 전환 할 수 있는지 설명 할 수 있다면 도움이 될 것입니다. 감사!

+0

GLSurfaveView.Renderer 또는 다른 클래스의 메소드를 알아야 게임 상태를 업데이트해야하며 상태를 렌더링 할 때 사용해야하는 메소드가 있습니다. 나는 복사 - 붙여 넣기 (그리고 아마도 tweek 조금) 할 수있는 많은 것을 가지고 있으므로 다시는 다시 시작하고 싶지 않다. – udiboy1209

답변

1

게임을 표시하는 클래스는 GLSurfaceView까지 확장됩니다. 렌더링 클래스는 Renderer을 구현합니다. Renderer 클래스에서 구현되지 않은 메소드를 추가해야합니다 (onDrawFrame(), onSurfaceChanged(), and onSurfaceCreated()).

희망이 도움이됩니다.

+0

나는 안드로이드 문서에서 많은 것을 발견했다. 내 대답에 그것을 언급하지 못한 것에 대해 유감스럽게 생각합니다. 그래서 당신은 GLSurfaceView를 확장하는 클래스에 'update()'코드를 유지하고 렌더러를 확장하는 다른 클래스에 내 'render()'코드를 옮겨서 onDrawFrame() 메소드에 넣는다고 말하고 있습니다. 명확히하십시오. 내 스레드에서 해당 메서드의 실행을 제어 할 수 있습니까? – udiboy1209

+0

게임은 onDrawFrame() 메소드에서 업데이트됩니다. GLSurfaceView는 기본적으로 빈 창입니다. 렌더러는 모든 게임 로직을 처리합니다. – jessenave

+0

오크 감사합니다! – udiboy1209