2011-12-12 3 views
3

내 장면에 추가되는 CCSpriteBatchNode가 있습니다.CCSpriteBatchNode의 CCSprite에 CCLabel을 추가 할 수 있습니까?

"initWithSpriteFrameName"으로 생성 된 CCSprite가 있습니다. 그런 다음 배치 노드에 추가합니다.

스프라이트가 올바르게 표시됩니다. 그러나 그 후 나는 CCSprite에 자식으로 CCLabelTTF을 추가하고 다음과 같은 오류와 응용 프로그램의 충돌 :

"같은 질감 ID를 사용하지 않는 CCSprite는"레이블을 추가 할 수있는 방법

있습니까

스프라이트의 자식 노드로?

답변

3

CCSpriteBatchNode에 CCSprite를 추가하지 않은 경우에만 레이블을 추가 할 수 있습니다. CCSpriteBatchNode는 CCSprite를 자식으로 만 허용하며 자식의 자식까지도 확장합니다.

옵션이 아닌 경우 다른 곳에서 장면 계층에 레이블을 추가 한 다음 update 메소드를 사용하여 레이블의 위치를 ​​스프라이트의 위치로 업데이트하면 레이블과 스프라이트의 위치를 ​​동기화 할 수 있습니다.

+0

나는 많은 연구를했고 내 질문에 설명 된대로 스프라이트를 추가한다고 결론 지었다. 그러나 두 번째 제안과 동일한 작업을 수행 한 다음 나중에 첫 번째 제안과 동일한 작업을 수행하도록 코드를 리팩터링했습니다. 결국 나는 네 소식을 봤어. =) – TigerCoding

+0

글쎄, 적어도 확인을 받았다. :) – LearnCocos2D

+0

CCLabelTTF는 CCSprite에서 상속되므로 CCSpriteBatchNode에 추가 할 수 있어야합니다. 문제는 CCSpriteBatchNode가 이미지 (일반적으로 PNG 아틀라스)를 사용하여 만들어졌지만 글꼴 이미지를 지정하고 CCLabelTTF와 함께 사용할 수 있는지 여부를 알 수 없습니다. – abeljus

관련 문제