我有一个CCSprite
对象,我想在另一个CCSprite
中复制它。然后我想要显示该副本。我尝试过这段代码,但它会产生运行时错误。
CCSprite* copy=CCSprite::spriteWithTexture(original->getTexture());
如何制作CCSprite
的副本?
答案 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());