Graphics 正确使用CCE

Graphics 正确使用CCE,graphics,opengl-es,cocos2d-iphone,cctexturecache,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];

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

CCSprite *s = [CCSprite spriteWithFile:@"image.png"];
此精灵是相对常用的
CCLayer
的背景图像。以下使用
CCTextureCache
是否更有效

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

首先,如果您查看spriteWithFile:method的代码,您将看到,如果在那里找不到图像,它会将图像添加到纹理缓存中


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

首先,如果你查看spriteWithFile:method的代码,您将看到,如果在纹理缓存中找不到图像,它会将图像添加到纹理缓存中


您必须知道的第二件事是,如果您将艺术存储在图集中以减少内存使用(例如,图集2048x2048像素,包含20种不同图片),spriteWithTexture:将创建具有整个巨大图集(2048x2048像素)纹理的sprite。

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


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

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

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