Cocos2D CCSprite的问题?

时间:2011-07-24 09:48:01

标签: iphone cocos2d-iphone

我是Cocos2D的新手,我对texuture加载有疑问。

当我使用如下代码创建两个精灵时,是否将纹理“alien.png”加载到内存中两次?或者它只保存一个副本并只创建一个OpenGL纹理?

sp1=[CCSprite spriteWithFile:@"alien.png"];
sp2[CCSprite spriteWithFile:@"alien.png"];

1 个答案:

答案 0 :(得分:3)

如果你看一下Cocos2D的实现方式(不要忘记它是开源的,你可以深入研究每种方法),你会看到[CCSprite spriteWithFile:@"alien.png"]使用[[CCTextureCache sharedTextureCache] addImage: filename]; 加载/缓存纹理。 CCTextureCache单例上的addImage方法检查纹理是否已经缓存,并且只有当它不会开始从指定路径加载它时。现在,在缓存纹理的情况下,在屏幕上绘制多少次并不重要,您不会在内存中多次加载纹理。