2015-02-02 4 views
0

그 중 일부는 이미 함께 겹쳐진 여러 개의 스프라이트를 포함하는 400 CCSprites 격자를 포함하는 iPad 응용 프로그램이 있습니다. 노드의 모든 항목에 대해 ZOrder이 동일해야한다고 생각하므로 CCSpriteBatchNode을 사용하지 않았습니다. 성능이 허용됩니다. 그러나 (선택적으로)은 400 개의 스프라이트 각각의 중앙에 작은 점을 오버레이해야합니다 (사용자가 레이아웃을 지원하는 격자를 표시하려는 경우). 문제는 다른 CCSprite (addChild 사용)을 추가하여 화면에 800 개가 넘는 스프라이트가 있고 성능이 크게 떨어지는 것입니다. 이미 성능에 영향을 미치지 않는 새로운 스프라이트에 그리기 할 수있는 방법이 있습니까? (동적으로 새 스프라이트를 생성하는 것 같지만, 누적 된 집합이 아닙니다.성능 저하없이 다른 CCSprite에 CCSprite 내용 추가

Cocos2d V2.3을 사용하고 있습니다. 프로젝트를 Cocos2d V3으로 변환하려고했으나, 그러나 성능이 약간 더 나 빠졌고 많은 조정 문제가 발생했습니다. 프로젝트가 완료되면 V2.3에서이 작업을 완료하는 것이 좋습니다.

미리 제안 해 주셔서 감사드립니다. 추신 : 몇 가지 비슷한 질문을 찾았지만 스프라이트를 쌓는 방법을 다루었습니다. 이것은 문제가되지 않습니다. 그렇게 할 수 있습니다. 그것은 내가 고심하고있는 새로운 스프라이트를 그리는 것입니다.

+0

도트가 정말로 점 (너무 복잡하지 않음)이라면 CCSprite에서 쉐이더를 사용하여 '점'으로 표시 할 수 있습니다. 그리기 호출이 추가되지 않으며 성능에 미치는 영향이 최소화되어야합니다 . 유니폼으로 .hasDot 셰이더를 제어 할 수 있습니다. – YvesLeBorg

+0

내가 그걸 어떻게 할 것인지, 도움이 될만한 좋은 아이디어가 있습니까? 나는 셰이더를 사용한 적이 없으므로 시작할 곳이 없다. 표시된 스프라이트에 사용할 수있는 여러 스프라이트에서 텍스처를 동적으로 만드는 방법이 있습니까? –

+0

배치 노드를 사용해보십시오. 성능이 수정되는지 확인하십시오. 그렇다면 zorder를 재 작업하여 vertexz를 대신 사용하십시오 (깊이 버퍼링을 사용해야 할 수도 있음). btw, v2.3이 확실합니까? 나는 2.2가 최신 v2.x 공식 릴리스라고 생각한다. – LearnCocos2D

답변

-1

답변은 CCRenderTexture 형태로 제공됩니다. 모든 스프라이트를 단일 텍스처로 그려 단일 CCSprite에 사용하십시오.

+0

이 옵션은 스프라이트가 변경되지 않는 경우에만 도움이됩니다. 매번 렌더링 텍스처를 재생성하면 작업 속도가 느려질 것입니다. – LearnCocos2D

+0

처음부터 명확히 했어야 했으므로 - 스프라이트가 변경되지 않으므로 이것이 해결책입니다. . 앱을 실행할 때 ~ 80 %에서 12 %로 CPU를 줄였습니다. –

0

기존 스프라이트의 텍스처를 점이있는 텍스처로 변경하십시오.
이 해결 방법이 귀하의 사례와 일치하지 않는 경우 스크린 샷 (또는 스크린 샷의 일부) 또는 장면의 스프라이트에 대한 자세한 설명을 제공해주십시오.