我目前正在创建CCSprite
,如下所示:
CCSprite *s = [CCSprite spriteWithFile:@"image.png"];
此精灵是相对经常使用的CCLayer
的背景图像。以下CCTextureCache
使用效率更高吗?
CCTexture2D *t = [[CCTextureCache sharedTextureCache] addImage:@"image.png"];
CCSprite *s = [CCSprite spriteWithTexture:t];
答案 0 :(得分:3)
没有。在内部,所有使用图像作为纹理的方法(不仅仅是CCSprite)都会将纹理添加到CCTextureCache。
您希望直接使用addImage的唯一原因是当您想要预先加载某些纹理时,使用该纹理的节点的第一次出现不会在游戏过程中造成延迟。
答案 1 :(得分:1)
首先,如果你看一下spriteWithFile:方法的代码,你会看到它无论如何都无法在纹理缓存中找到它。
第二件事你必须知道,如果你将你的艺术品存储在地图册中以减少内存使用量(例如,带有20张不同图片的图集2048x2048像素),spriteWithTexture:将创建具有整个巨大图集(2048x2048像素)纹理的精灵。