2012-07-17 2 views
1

SurfaceView : SurfaceView는 (SurfaceHolder.Callback()을 사용하여) 다른 스레드에서 드로잉하고 있습니다.Android : SurfaceView, 다른 스레드에서 그리는 이유

하나의 Android 게임 프로젝트에서 나는 SurfaceView 클래스에서 볼 수 있습니다. 동일한 클래스에서 Physics (위치, ...)를 처리하지만 Graphics (화면으로 그리기)를 처리 할 때 다른 스레드를 사용하여 처리합니다. Android 예제 Landern도이 모델을 사용했습니다.

이 모델의 장점을 말해주십시오. (즉, 다른 스레드를 사용하여 SurfaceView의 동일한 스레드에서 그리기보다는 화면에 그리기).

감사합니다 :) 내 제한 expierience에서

답변

2

: 당신이 별도의 스레드에서 그리는 경우 "배경 애니메이션"을 유지할 수

더 많은 일을하는 동안 (화재 굽기, 물, 그라 이동) 복잡한 계산 등 "메인"스레드.

하나의 스레드에서 모든 작업을 수행하는 경우 기본적으로 드로잉하는 동안 모든 동작을 차단하고 반대의 경우 모든 동작/계산 블록 드로잉을 수행합니다.

장점은 만들고 싶은 whtt 게임에 따라 다릅니다. 어떤 특별한 애니메이션이나 효과없이 보드 게임을한다면, 당신은 내가 생각하기에 하나의 실로 나가는 것이 좋다.

+0

좋은 경험 – hqt

+0

또한 게임이 메인 스레드에서 전달되는 키 이벤트에 반응하도록합니다. –

관련 문제