如何在cocos2D中添加相同的精灵?

时间:2011-10-27 08:18:34

标签: cocos2d-iphone sprite

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

1 个答案:

答案 0 :(得分:9)

您无法重复使用同一个CCSprite实例。但是,您可以重复使用Cocos2D为您自动执行的纹理。

您可以使用相同的图像文件或精灵框架创建多个精灵。例如,这将创建100个砖精灵,并为每个精灵提供0到99之间的唯一标记:

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

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