复制CCS精灵

duplicating a CCSprite

本文关键字:精灵 CCS 复制      更新时间:2023-10-16

我有一个CCSprite对象,我想在另一个CCSprite中复制它。然后我想展示那个副本。我已经尝过这段代码,但它会出错。

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

如何复制我的CCSprite

如果你想有很多重复的精灵,你需要将你的精灵存储在CCArray上,然后再次调用函数使用函数的时间表添加精灵

您应该确保在副本使用时不会删除原件的纹理。

你研究过CCObject::copy()吗?

我经常使用这种技术来复制操作。CCSprite 源自 CCObject,所以虽然我没有尝试过,但您可以通过在精灵实例上调用 copy() 来复制精灵。

你这样做是为了速度吗?

如果是这样,您应该使用"精灵表"。使用精灵表,一组精灵帧(图形)被加载到纹理内存中,然后每次使用任何这些精灵帧创建精灵时,系统实际上使用的是内存中已有的相同纹理。此外,在屏幕上绘制精灵时,使用该纹理的任何精灵都会"批量"(同时进行)进行,从而节省处理周期(速度很快)。

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

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

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