2013-06-25 2 views
2

Sprite.setChildIndex의 성능에 문제가 있습니다. 많은 작은 이미지로 구성된 세계를 보여줘야합니다. (약 10.000)Starling SetChildIndex 성능 문제

최상의 성능을 얻으려면 이미지 풀을 사용하고 모든 이미지가 항상 하나의 스프라이트 목록에 표시되므로 이미지를 추가하거나 제거 할 필요가 없습니다.

세계의 새로운 지역을 표시하려면 이미지를 새 위치로 이동하기 만하면됩니다. 이 프로세스는 실제로 빠르며 약 6ms가 걸립니다.

하지만 문제는 디스플레이 목록에있는 이미지의 순서가 중요하다는 것입니다. 그 때문에 setChildIndex를 사용하여 이미지를 재정렬해야합니다. 디스플레이 목록 (setChildIndex)에서 이미지를 올바른 위치로 설정하는 과정은 성능에 큰 영향을 미치므로 새 Region을 표시하는 데 약 60ms가 필요합니다. 프로세스를 최적화하는 방법에 대한 아이디어가 있습니까? 아니면 setChildIndex 메서드 대신 사용할 수있는 방법이 있습니까?

답변

0

세계의 각 지역에 고유 한 컨테이너를 지정하고 해당 컨테이너를 세계 컨테이너에 넣을 수 있습니다. 이렇게하면 10,000 개가 아닌 500 개 이미지 그룹으로 childIndex 또는 swapChildren을 설정할 수 있습니다. 그리고 새 Region을로드하려면 전역 컨테이너 내의 전체 Region 컨테이너에 ChildIndex를 설정할 수 있습니다. 이렇게하면 모든 10,000 개의 스프라이트에주의를 기울이지 않아도 맵로드가 최적화됩니다.