먼저, 나를 진정으로 거대한 삼가의 방법으로이 말을하자
아야!
다음은 기술적 인 이유입니다. 스프라이트는 16.384 개를 배치하자 마자 렌더링되지 않습니다. 각 스프라이트는 스프라이트를 화면에 렌더링하기 위해 쿼드 (4 개의 꼭지점)를 사용하기 때문에 배치 작업 당 버텍스 한계 65.536 개를 맞았습니다.
배치 작업 당 더 많은 정점이 그려지지 않습니다(). 이는 기술적 인 제한 사항입니다. 추가 스프라이트를 만들기 위해 다른 CCSpriteBatchNode를 사용할 수도 있습니다.하지만 진지하게 여기서 아무데도 갈 길이 없습니다.
선을 그려야하는 것이 필요한 경우 아마도 이것은 내가 생각할 수있는 최악의 접근 방법 일 것입니다. 선 그리기 (ccDrawLine), 개별 픽셀 (ccDrawPixel도 존재하지만 15k 픽셀은 대단히 느릴 것입니다) 또는 셰이더를 사용하여 동일하거나 유사한 효과를 얻으십시오. CCDrawNode를 사용하여 cocos2d 2.1을 사용하여 그리기 프리미티브를 배치 할 수도 있습니다.
YETIPIPI에서 성공적으로 사용한 다른 솔루션 중 하나는 제한된 수의 스프라이트, 예를 들어 20에서 200까지를 사용하여 CCRenderTexture에 그려주는 것입니다. 새 스프라이트를 추가 할 때마다 가장 최근에 사용되지 않은 스프라이트가 다시 사용됩니다. 렌더 텍스처를 지우지 않으면 훨씬 적은 수의 스프라이트로 계속 그릴 수 있습니다. 불투명도가 낮은 스프라이트를 그리면 해당 영역을 더 불투명하게 만들기 위해 더 오랜 시간 동안 동일한 위치에서 그리기의 효과를 얻을 수도 있습니다.
감사합니다. 매우 알아두면 좋습니다! 흥미롭게도이 기술은 실제로 한계에 도달 할 때까지 지금까지 극도의 성능을 발휘했습니다. 필자는 스프라이트를 CCRenderTexture에 그려서 재사용 할 수있는 아이디어를 좋아합니다. 비록 내가 다른 드로잉 시간에 픽셀 크기를 변경하면 문제가있을 것입니다 궁금해 ... –