2012-01-03 4 views
0

나는 안드로이드 용 게임 기본 카드 게임을 개발 해왔다. 현재 Android 3.0을 대상으로하고 Asus Transformer 태블릿에서 테스트하고 있습니다. SDK의 Lunar Lander 예제와 비슷한 간단한 캔버스 작업으로 SurfaceView 객체를 사용하고 있습니다. AndroidManifest.xml에서 하드웨어 가속을 사용할 수 있습니다.안드로이드 비트 맵 프레임 속도 문제

나는 실제적으로 게임 코딩을 마쳤다. 그러나 일부 프레임 속도 문제가 있습니다. 기본 게임 플레이 중에 21-22 fps의 프레임 속도를 얻고 있습니다. 그러나, 나는 단순한 눈동자에 대해 약간의 입자 효과를 추가 할 것으로 예상했는데, 이는 필자에게 받아 들일 수없는 프레임 속도를 확실히 줄 것이다. 문제를 격리하는 데 도움이되도록 모든 텍스트와 카드 및 모든 애니메이션의 그림을 주석 처리했습니다. 이로 인해 내 프레임 속도가 31fps로 향상되었습니다. 이로 인해 캔버스를 잠그고 캔버스를 검은 색으로 채우고 1280x800 배경 비트 맵을 그리고 캔버스를 열어 게시하는 간단한 게임 루프가 있습니다. 배경 그리기를 제거하면 프레임 속도가 약 62fps로 향상되며 lockCanvas 스로틀로 인해 장치 최대치를 초과하지 않아야합니다. 간단한 비트 맵을 그리는 데 드는 비용이 많이 드는 작업입니까? 나는 이것이 큰 텍스쳐라는 것을 알고 있지만, 큰 효과가있는 큰 배경 텍스처를 성공적으로 사용하는 많은 게임을 보았습니다. OpenGL없이 괜찮은 프레임 속도를 얻을 수 있습니까? 로그를보고 GC 문제가 아닌지 확인했습니다.

내가 지금까지 시도한 유일한 것은 비트 맵이 적극적으로 크기 조정되지 않았 음을 확인하는 것입니다. 내 배경 png를 1280x696으로 수정했습니다.이 크기는 작업 표시 줄과 주 허니 콤 하단 막대에 맞게 조정 된 정확한 크기입니다. drawable-nodpi 폴더에 수정 사항을 배치 했으므로 이미지가 크기 조정되지 않아야합니다. 그러나 이것은 프레임 속도에 영향을 미치지 않습니다. 프레임 속도는 배경만을 그리는 31fps로 떨어집니다.

누구나 프레임 속도를 향상시키기 위해 할 수있는 것에 대한 아이디어가 있습니까? 나는 기본적으로 모든 것을 제거했기 때문에 비트 맵 그리기에서 내 문제가오고 있다고 생각합니다.

+0

나는 조금 더 많은 테스트를 해왔고 몇 가지 매우 이상한 행동을 발견했습니다. 여러 다른 크기로 이미지를 만들었습니다. 1200x600 이미지의 경우 프레임 속도 저하 (61fps)가 발생하지 않습니다. 1260x650 이미지의 경우 프레임 속도가 31fps로 떨어집니다. 변경된 유일한 변수는 이미지 크기입니다. 어떤 아이디어? – BKW

답변

1

SurfaceViewRGB_565을 사용하고, 비트 맵으로 ARGB_8888을 사용하여 발생하는 비슷한 문제가있었습니다. 비트 맵과 동일한 것을 사용하도록 표면 뷰를 설정하면 20fps에서 59-60fps로 이동했습니다. 변환이 매우 느립니다. 늦어서 미안하지만 아마 다른 사람을 도울 것입니다.

+0

예를 들어 주시겠습니까? – user2801184