复制CCSprite

时间:2013-01-31 05:26:53

标签: c++ cocos2d-x ccsprite

我有一个CCSprite对象,我想在另一个CCSprite中复制它。然后我想要显示该副本。我尝试过这段代码,但它会产生运行时错误。

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

如何制作CCSprite的副本?

5 个答案:

答案 0 :(得分:0)

如果你想拥有许多重复的精灵,你需要将你的精灵存储在CCArray上,然后再次调用函数来使用函数的计划添加精灵

答案 1 :(得分:0)

您应该确保在复制时不删除原始纹理。

答案 2 :(得分:0)

您是否查看了CCObject :: copy()?

我经常使用这种技术来复制动作。 CCSprite派生自CCObject,所以虽然我没有尝试过,但你可以通过在sprite实例上调用copy()来复制sprite。

答案 3 :(得分:0)

你是为了速度吗?

如果是这样,你应该使用“精灵表”。使用精灵表,将一组精灵帧(图形)加载到纹理存储器中,然后每次使用任何精灵帧创建精灵时,系统实际上使用的是与内存中已有的相同纹理。此外,当在屏幕上绘制精灵时,任何使用该纹理的精灵都会以“批量”(同时全部)保存处理周期(速度很快)。

有关示例,请参阅此项目。汽车和猫精灵装在精灵表中: http://www.gmtdev.com/blog/2011/08/19/how-to-use-box2d-for-just-collision-detection-with-cocos2d-x/

答案 4 :(得分:0)

cocos2dx没有为sprite提供克隆方法。你必须通过获取第一个sprite的纹理并以这种方式创建一个带有该纹理的sprite来自己制作它。

Sprite * clonedSprite = Sprite :: createWithTexture(originalSprite-> getTexture());