2014-09-22 2 views
0

CCNode를 batchNode로 생성하고 스프라이트를 올바르게보고/액세스하는 방법을 찾고 있습니까?cocos2d v3.2.1 CCSpriteBatchNode가 사용되지 않음 - 동일한 기능을 복제하는 방법?

도움을 주시면 감사하겠습니다.

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sprites.plist"]; 
_actors = [CCSpriteBatchNode batchNodeWithFile:@"sprites.pvr.ccz"]; 
[_actors.texture setAntialiased:YES]; 

이것은 원래 가지고있는 것입니다. 여기에 내가 현재 가지고있는 것입니다 :

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sprites.plist"]; 
_actors = [CCNode node]; 
[_actors addChild:[CCSprite spriteWithImageNamed:@"sprites.pvr.ccz"]]; 
+0

나는 모든 CCNode가 자식이 추가되거나 자식 zOrder가 새로운 값으로 설정 될 때 자동으로 재배치한다고 생각한다. 그래서 ... 당신은 기능을 복제해야한다고 확신하지는 않습니다. 일괄 처리에 대해 더 알고 싶다면 다음을 읽어보십시오. https://github.com/cocos2d/cocos2d-swift/wiki/Cocos2D-Render-Order-and-Batching – YvesLeBorg

+0

.plist를 설정하는 것에 대해 알고 있다면 이제 스프라이트 시트가 노드입니까? 위의 게시물 주셔서 감사! – Lagoo87

+0

당신은 새로운 렌더링 엔진을 사용하지 않아도됩니다. '배치 노드 텍스처는 그 자식의 텍스처와 동일해야합니다'에 대한 제한이 없습니다. 노드의 모든 자식이 동일한 텍스처를 사용하면 일괄 처리가 자동으로 수행됩니다. 렌더 상태가 바뀌면 (새로운 텍스처, 새로운 쉐이더, 다른 유니폼 ...) 일괄 처리를 중단하지만 일반 바닐라 스프라이트의 경우 노드에 텍스처가 하나 뿐인 1100 개의 스프라이트가 있으면 그리기 호출이 1 회 발생합니다. – YvesLeBorg

답변

0

이 문제를 해결하려면, 내 SpriteSheet를 내보낼 때 TexturePacker 옵션에 플립 PVR을 활성화 할 필요가 있었다. 바라기를 이것은 당신 중 일부를 도와줍니다!

+0

내가 도울 수있어서 기뻐! – YvesLeBorg