2013-01-31 2 views
2

나는 CCSprite 개체를 가지고 있으며 다른 개체에 CCSprite 복사본을 만들고 싶습니다. 그런 다음 그 사본을 보여주고 싶습니다. 이 코드를 맛본 적이 있지만 런타임 오류가 발생합니다.CCSprite 복제

CCSprite* copy=CCSprite::spriteWithTexture(original->getTexture()); 

는 어떻게 CCSprite의 복사본을 만들 수 있습니다 ?

답변

0

당신은 많은 중복 스프라이트를하고 싶다면, 당신은 반드시 원래의 질감을하지해야하는 기능

0

에 대한 일정을 사용하여 스프라이트를 추가하기 위해 다시 전화를 한 후, 기능을 CCArray에 당신의 스프라이트를 저장해야합니다 복사본을 사용할 때 삭제됩니다.

0

CCObject :: copy()를 살펴 보셨습니까?

저는이 기술을 복사 작업에 자주 사용합니다. CCSprite는 CCObject에서 파생되므로 시도하지는 않았지만 스프라이트 인스턴스에서 copy()를 호출하여 스프라이트를 복사 할 수 있습니다.

+0

런타임 오류가 발생하여 작업을 수행 할 수 없습니다. – akrami

0

속도 향상을 원하십니까?

그렇다면 "스프라이트 시트"를 사용해야합니다. 스프라이트 시트를 사용하면 스프라이트 프레임 (그래픽) 세트가 텍스처 메모리에로드되고 스프라이트 프레임이있는 스프라이트를 만들 때마다 시스템은 실제로 이미 메모리에있는 것과 동일한 텍스처를 사용합니다. 또한 화면에 스프라이트를 그리면 해당 텍스처를 사용하는 모든 스프라이트는 "배치"(동시에)에서 처리주기를 절약합니다 (빠름).

예를 들어이 프로젝트를 참조하십시오. 자동차와 고양이 스프라이트는 스프라이트 시트에로드됩니다 sprite.You 먼저 스프라이트의 질감을 취함으로써 스스로를하고 이런 식으로 그 텍스처와 스프라이트를 만들어야했습니다에 대한 http://www.gmtdev.com/blog/2011/08/19/how-to-use-box2d-for-just-collision-detection-with-cocos2d-x/

0

cocos2dx는 복제 방법을 제공하지 않았다.

스프라이트 * clonedSprite = 스프라이트 :: createWithTexture (originalSprite-> getTexture());