2013-05-21 8 views
0

내가 디자인 한 게임은 여러 개의 중첩 된 CCSprites를 사용하므로 부모 스프라이트가 이동하거나 회전하거나 크기가 조정될 때 하위 스프라이트가 자동으로 그 손자를 않습니다.다른 노드의 자식이지만 배치 노드를 사용하는 ccsprite의 효과를 복제하는 방법은 무엇입니까?

배치 노드를 구현하지 않았으므로 매우 빨리 작동하지만 멋지게 작동하지 않습니다.

그러나 배치 노드를 사용하는 유일한 방법은 모든 스프라이트를 배치 노드의 하위 노드로 만드는 것입니다. 아마 각 부모를 배치 노드에 추가 한 다음 나머지 노드를 하위 노드로 추가 할 수는 있지만 작동하지 않는다고 생각했습니다.

아이디어가 있으십니까? 나는 부모의 움직임이있을 때마다 각 자식 스프라이트의 위치, 회전, 크기 등을 수동으로 계산하지 않아도되고 싶다. 현재이 작업을 수행하는 유일한 방법 인 것처럼 보인다.

+0

부모가 배치 노드에있을 수없는 이유는 무엇입니까? 그들의 이미지를 동일한 텍스처 맵에 추가하십시오. – LearnCocos2D

+0

그건 좋은 생각 같아. 부모 노드를 배치 노드에 추가하려고 시도했지만이 오류가 발생했습니다. 'NSInternalInconsistencyException', 이유 : 'CCSprite가 동일한 텍스처 ID를 사용하지 않습니다.' 부모와 자식 스프라이트는 모두 동일한 텍스처 맵뿐만 아니라 스프라이트 시트와 완전히 동일한 PNG를 사용합니다. –

+0

예, 완전히 작동했습니다! 나는 "spriteWithFile :"에서 "SpriteWithSpriteFrameName :"으로 자식 인스턴스화 중 하나를 변경하는 것을 잊어 버렸습니다. 그리하여 한 번의 드로우 호출만으로 최고 속도로 작동하는 것을 보았습니다 .-D –

답변

0

실제로 ccsprite 내부에 자식을 중첩 할 수 있고 부모가 배치 노드의 자식 인 한 배치 노드의 일부가 될 수있는 것처럼 보입니다. 내가 처음 시도했을 때 스프라이트 중 하나의 자식을 만들 때 "spriteWithFile :"을 "spriteWithSpriteFrameName :"으로 변경하는 것을 잊어 버렸습니다. 이제는 하나의 그리기 호출로 하나의 배치 노드에서 모두 완벽하게 작동합니다. 만세!