复制CCS精灵
duplicating a CCSprite
我有一个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());
相关文章:
- OpenGL 着色器不绘制任何东西 - 糟糕的精灵类
- 从精灵表在 sfml 中为精灵制作动画
- AABB 碰撞使实际精灵的大小翻倍
- 如何在精灵表上的两个不同部分之间来回切换,同时用户仍使用 SFML 持有密钥
- 我的精灵使用名为 ASGE 的C++框架卡在屏幕边缘
- 如何为精灵编写复制构造函数
- 绘制精灵会导致分割错误
- 精灵动画查看器应该使用哪些Qt小部件
- Eclipse构建但不会启动精灵
- OpenGL 2D游戏只绘制第二个精灵纹理而不是第一个
- 打开 gl 精灵类不起作用
- 有没有办法在链接时设置精灵需要字段?
- 精灵没有动画
- 在不同位置渲染相同精灵的数组
- 如何在 SFML 上添加更多精灵?
- 精灵不显示我希望它们显示的方式
- 为什么精灵在 cocos2d-x 中颤抖
- 我没有看到精灵的动画
- 为什么该代码不绘制精灵C++ SFML
- 复制CCS精灵