繁体   English   中英

复制CCSprite

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM