适当使用CCTextureCache

时间:2012-05-30 05:49:38

标签: graphics opengl-es cocos2d-iphone cctexturecache

我目前正在创建CCSprite,如下所示:

CCSprite *s = [CCSprite spriteWithFile:@"image.png"];

此精灵是相对经常使用的CCLayer的背景图像。以下CCTextureCache使用效率更高吗?

CCTexture2D *t = [[CCTextureCache sharedTextureCache] addImage:@"image.png"];
CCSprite *s = [CCSprite spriteWithTexture:t];

2 个答案:

答案 0 :(得分:3)

没有。在内部,所有使用图像作为纹理的方法(不仅仅是CCSprite)都会将纹理添加到CCTextureCache。

您希望直接使用addImage的唯一原因是当您想要预先加载某些纹理时,使用该纹理的节点的第一次出现不会在游戏过程中造成延迟。

答案 1 :(得分:1)

首先,如果你看一下spriteWithFile:方法的代码,你会看到它无论如何都无法在纹理缓存中找到它。

第二件事你必须知道,如果你将你的艺术品存储在地图册中以减少内存使用量(例如,带有20张不同图片的图集2048x2048像素),spriteWithTexture:将创建具有整个巨大图集(2048x2048像素)纹理的精灵。