Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 复制一张照片_C++_Cocos2d X_Ccsprite - Fatal编程技术网

C++ 复制一张照片

C++ 复制一张照片,c++,cocos2d-x,ccsprite,C++,Cocos2d X,Ccsprite,我有一个CCSprite对象,我想在另一个CCSprite中复制它。然后我想展示那份拷贝。我已经尝试过这段代码,但它会导致运行时错误 CCSprite* copy=CCSprite::spriteWithTexture(original->getTexture()); 我如何复制我的CCSprite?如果你想拥有多个重复的sprite,你需要将你的sprite存储在CCArray上,然后再次调用用于使用schedule为函数添加精灵的函数您应该确保在副本使用原始纹理时不会删除它。是否查看

我有一个
CCSprite
对象,我想在另一个
CCSprite
中复制它。然后我想展示那份拷贝。我已经尝试过这段代码,但它会导致运行时错误

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

我如何复制我的
CCSprite

如果你想拥有多个重复的sprite,你需要将你的sprite存储在CCArray上,然后再次调用用于使用schedule为函数添加精灵的函数

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

是否查看了CCObject::copy()


我经常使用这种技术来复制动作。CCSprite源于CCObject,因此尽管我没有尝试过,但您可以通过在精灵实例上调用copy()来复制精灵。

您这样做是为了提高速度吗

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

有关示例,请参见此项目。汽车和猫精灵加载在精灵表中:

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

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