cocos2d-iphone - 如何在cocos2D中添加相同的 Sprite ?

标签 cocos2d-iphone sprite

我想在我的视差背景中多次使用 Sprite “砖 block ”。 有没有办法可以重复使用同一个 Sprite ? 因为我也必须为我的 Sprite 设置碰撞检测...... 如果我使用太多变量,我认为那是没用的。 感谢您的帮助

最佳答案

您不能重复使用同一个 CCSprite 实例。然而,您可以重新使用纹理,Cocos2D 会自动为您完成。

您可以使用相同的图像文件或 Sprite 帧创建多个 Sprite 。例如,这将创建 100 个砖 block Sprite 并为每个 Sprite 指定一个从 0 到 99 的唯一标签:

for (int i = 0; i < 100; i++)
{
   CCSprite* brick = [CCSprite spriteWithFile:@"brick.png"];
   [self addChild:brick z:0 tag:i];
}

所有使用图像文件“brick.png”的 Sprite 都将使用相同的内存纹理。 CCTextureCache 缓存每个加载的图像文件,以便每个 CCSprite 的额外内存使用量接近 500 字节(我用 Objective-C 运行时检查过一次)。这意味着使用相同纹理的一千个 Sprite 将使用大约 500 KB 加上纹理使用的内存量。

关于cocos2d-iphone - 如何在cocos2D中添加相同的 Sprite ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7913315/

相关文章:

cocos2d-iphone - 如何使用 cocos2d 和 box2d 像在 LIMBO 游戏中那样创造水?

iphone - 我可以让两个重叠按钮同时响应两个事件吗

objective-c - 如何在 UIView 上添加 CCSprite

swift - 添加 Sprite 时如何克服错误

python - Pygame:如何在未按下任何键时使 Sprite 面向同一方向

ios - Cocos2d v3模态暂停 View 实现

ios - 同时使用 UIPanGestureRecognizer 和 UITapGestureRecognizer

nsmutablearray - Sprite Kit iOS7 - SKNode UserData 属性不存储值

asp.net-mvc - 图像优化框架未初始化

java - LibGDX:循环时使用 SpriteBatches