그 중 일부는 이미 함께 겹쳐진 여러 개의 스프라이트를 포함하는 400 CCSprites
격자를 포함하는 iPad 응용 프로그램이 있습니다. 노드의 모든 항목에 대해 ZOrder
이 동일해야한다고 생각하므로 CCSpriteBatchNode
을 사용하지 않았습니다. 성능이 허용됩니다. 그러나 (선택적으로)은 400 개의 스프라이트 각각의 중앙에 작은 점을 오버레이해야합니다 (사용자가 레이아웃을 지원하는 격자를 표시하려는 경우). 문제는 다른 CCSprite
(addChild
사용)을 추가하여 화면에 800 개가 넘는 스프라이트가 있고 성능이 크게 떨어지는 것입니다. 이미 성능에 영향을 미치지 않는 새로운 스프라이트에 그리기 할 수있는 방법이 있습니까? (동적으로 새 스프라이트를 생성하는 것 같지만, 누적 된 집합이 아닙니다.성능 저하없이 다른 CCSprite에 CCSprite 내용 추가
Cocos2d V2.3을 사용하고 있습니다. 프로젝트를 Cocos2d V3으로 변환하려고했으나, 그러나 성능이 약간 더 나 빠졌고 많은 조정 문제가 발생했습니다. 프로젝트가 완료되면 V2.3에서이 작업을 완료하는 것이 좋습니다.
미리 제안 해 주셔서 감사드립니다. 추신 : 몇 가지 비슷한 질문을 찾았지만 스프라이트를 쌓는 방법을 다루었습니다. 이것은 문제가되지 않습니다. 그렇게 할 수 있습니다. 그것은 내가 고심하고있는 새로운 스프라이트를 그리는 것입니다.
도트가 정말로 점 (너무 복잡하지 않음)이라면 CCSprite에서 쉐이더를 사용하여 '점'으로 표시 할 수 있습니다. 그리기 호출이 추가되지 않으며 성능에 미치는 영향이 최소화되어야합니다 . 유니폼으로 .hasDot 셰이더를 제어 할 수 있습니다. – YvesLeBorg
내가 그걸 어떻게 할 것인지, 도움이 될만한 좋은 아이디어가 있습니까? 나는 셰이더를 사용한 적이 없으므로 시작할 곳이 없다. 표시된 스프라이트에 사용할 수있는 여러 스프라이트에서 텍스처를 동적으로 만드는 방법이 있습니까? –
배치 노드를 사용해보십시오. 성능이 수정되는지 확인하십시오. 그렇다면 zorder를 재 작업하여 vertexz를 대신 사용하십시오 (깊이 버퍼링을 사용해야 할 수도 있음). btw, v2.3이 확실합니까? 나는 2.2가 최신 v2.x 공식 릴리스라고 생각한다. – LearnCocos2D