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

Cocos2d iphone 如何在cocos2D中添加相同的精灵?,cocos2d-iphone,sprite,Cocos2d Iphone,Sprite,我有雪碧“砖块”,我想在我的视差背景中多次使用。 有没有办法让我重复使用同一个精灵? 因为我必须为我的精灵设置碰撞检测。。。 如果我使用太多的变量,我认为这是无用的。 感谢您的帮助您不能重复使用同一个CCSprite实例。但是,您可以重新使用纹理,Cocos2D会自动为您执行此操作 可以使用同一图像文件或精灵框架创建多个精灵。例如,这将创建100个砖块精灵,并为每个精灵指定一个从0到99的唯一标记: for (int i = 0; i < 100; i++) { CCSprite*

我有雪碧“砖块”,我想在我的视差背景中多次使用。 有没有办法让我重复使用同一个精灵? 因为我必须为我的精灵设置碰撞检测。。。 如果我使用太多的变量,我认为这是无用的。
感谢您的帮助

您不能重复使用同一个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];
}
for(int i=0;i<100;i++)
{
CCSprite*brick=[CCSprite spriteWithFile:@“brick.png”];
[self addChild:brick z:0标记:i];
}

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

CCSpriteBatchNode将在相同的绘制调用中渲染其所有子精灵,但您是否真的希望内存中有一个在屏幕上多次显示的对象?我不知道这是可能的;我想将其声明为全局变量(在*.h文件中),是否可能(在上面的上下文中)?