2013-04-14 1 views
0

편집 2. logcat의 스크린 샷을 추가했습니다. 스프라이트 수를 1로 줄이면이 ​​간헐적 인 '중지/시작'이 발생합니다. 따라서 내 코드가 내 스프라이트로 생각하지 않습니다. 내 프레임 속도는 85-90fps 정도입니다. 나는 그것이 전화 상으로 뭔가를 추측하고있다. 많은 것들이 logcat에 의해 로그되고 있기 때문에 백그라운드에서 많은 것을 실행하고 있다고 가정하고있다. 실행 중에 다른 서비스보다 우선 순위를 부여 할 방법이 있습니까?Android에서 OpenGL ES 2.0을 사용하는 저속한 스프라이트 (2d) 동작

편집 1. 질문 내가 함께 aprox 290 스프라이트를 렌더링하는 내가 스프라이트 테스트를 만들었습니다

의 끝에서 편집 세부 사항을 참조하십시오.

초당 1 프레임의 스프라이트는 약 80 프레임이었고 288 프레임은 여전히 ​​약 30 프레임이었습니다. 스프라이트가 멈추고 시작될 때마다 프레임 속도가 분명히 나빠 지므로 누구나 아이디어를 얻을 수 있습니다. 이것이 원인 일 수 있습니까? (단지 천천히 움직이는 것이 아니라 오히려 부드럽게 움직여야한다는 것을 분명히 밝혀야합니다. 그런 다음 모든 것이 잠깐 멈추고 부드럽게 돌아옵니다.)

이것은 화면에 하나의 스프라이트가있는 경우에도 발생하지만 간헐적으로 매 5 초마다 발생합니다. 스프라이트를 많이 추가할수록 프레임 속도는 결코 30fps 이하로 떨어지지 않습니다. 부드러운 움직임을 위해서는 괜찮을 것입니다.) 그래서 나는 이것이 무엇이 될 수 있는지 이해하려고 노력하고 있습니다.

내 스프라이트는 사용자 지정 클래스에서 만들어 지지만 실제로는 3 개의 실제 개체 (배경, 화면에서 움직이는 스프라이트 (부드러움을 측정 할 수 있도록) 및 288 개의 스프라이트 (실제로는 동일 함) 객체를 다시 사용) 어떤 도움을 6

감사의 배치로 렌더링됩니다.

하드웨어는.

편집 OK 삼성 갤럭시 에이스 전화, 그래서 일괄 처리 루틴에 의해 변경 이제는 호출 당 24 스프라이트를 렌더링합니다 (14 호출 = 336 쿼드 + movi ng sprite + background = 338 quads), 47 FPS를 얻고 있습니다. 그래서 GC 나 프레임 속도가 너무 떨어지는 것을 제외하고 무엇이 "움직이는"움직임을 일으키는 지 궁금합니다.

enter image description here

답변

0

는 가비지 컬렉터 실행 같은 소리. 이것을 확인하려면 logcat을보세요 ... "dalvikvm"이라는 태그가 붙은 줄과 "GC_"로 시작하는 줄과 관련된 순간적인 순간이 있습니까?

+0

안녕하세요 @ReubenScratton CG를 확인했지만 내 루프 중에 전혀 실행되지 않습니다. 아주 이상한. 나는 나의 추가 시험을 반영하기 위해 나의 질문을 업데이트 할 것이다. – Zippy

+0

5 초 간격은 여전히 ​​GC처럼 들립니다. 물론 logcat보기에서 디버그 태그를 필터링하지 않았습니까? –

+0

@RuebenScratton, CG가 나타나기 때문에 logcat 필터링이 올바르게 설정되었지만 내 주 루프에서는 확실히 필터링되지 않습니다. 다른 아이디어? – Zippy