2013-12-27 3 views
0

표준 캔버스 기반의 표면 뷰와 관련하여, 메인 스레드 (예 : NPC 이동 및 부착 된 충돌)에서 주요 작업을 오프로드하기 위해 asynctask를 사용하고자한다는 것을 기억하십시오.Android glsurfaceview, 충돌 테스트 및 "ai 이동"계산을 asynctask를 사용하여 수행해야합니까?

이 작업을 잘 볼 수 있지만, asynctask는 결과가있을 때 결과를 보내고 NPC는이 결과가있을 때만 움직이며 위치가 업데이트 된 것입니다 ...

GLSurfaceView에서 필요하거나 권장되는 기능입니까? 방금 내가 일종의 "속임수"가이 일을 성취하는데 관련되어 있다는 것을 읽었 기 때문에 그것이 최선의 행동 과정이 아닐 수도 있다고 믿기 때문에 묻고 있습니다 ...

고마워요!

+0

Android 브레이크 아웃 (https://code.google.com/p/android-breakout/)의 렌더링 스레드에서이 작업을 수행했지만 계산 속도가 매우 빠릅니다. 상태 업데이트가 더 복잡한 경우 게임 상태를 전용 스레드로 분리하는 것이 더 적합 할 수 있습니다 (예 : Replica Island, https://code.google.com/p/replicaisland/). – fadden

답변

0

음, 필요한 모든 종류의 더 "트릭"...

을 밝혀 없습니다 그냥하여 AsyncTask를 내부 클래스의 책 구현에 의해. GLSurfaceView 클래스를 확장 한 "클래스 이름"에 직접 배치했습니다.

또 다른 주목할 점은 성능 차이는 무시할 수 있습니다 ... 단지 미사일 충돌에 더 어려울 수 있습니다. 추가 테스트 필요 :