[英]duplicating a CCSprite
我有一个CCSprite
对象,我想在另一个CCSprite
复制它。 然后我要显示该副本。 我已经尝过这段代码,但它会导致运行时错误。
CCSprite* copy=CCSprite::spriteWithTexture(original->getTexture());
如何复制CCSprite
?
如果您想拥有许多重复的子画面,则需要将子画面存储在CCArray上,然后再次调用该函数以使用该函数的计划来添加子画面
您应该确保在使用副本时不删除原始纹理。
您是否看过CCObject :: copy()?
我经常使用这种技术来复制动作。 CCSprite派生自CCObject,因此,尽管我没有尝试过,但您仍可以通过在sprite实例上调用copy()来复制sprite。
您这样做是为了提高速度吗?
如果是这样,则应该使用“ sprite sheet”。 使用Sprite工作表时,一组Sprite框架(图形)被加载到纹理内存中,然后每次使用这些Sprite框架中的任何一个创建Sprite时,系统实际上都在使用与内存中相同的纹理。 另外,在屏幕上绘制精灵时,所有使用该纹理的精灵都会“批量”执行(全部同时进行),从而节省了处理周期(速度很快)。
有关示例,请参见此项目。 汽车和猫精灵会加载到精灵表格中: http : //www.gmtdev.com/blog/2011/08/19/how-to-use-box2d-for-just-collision-detection-with-cocos2d- X/
cocos2dx没有提供sprite的克隆方法,您必须自己制作第一个sprite的纹理并以此方式创建带有该纹理的sprite。
Sprite * clonedSprite = Sprite :: createWithTexture(originalSprite-> getTexture());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.