0

我目前正在创建一个CCSprite这样的:

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

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

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

2 回答 2

3

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

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

于 2012-05-30T10:42:23.660 回答
1

首先,如果您查看 spriteWithFile: 方法的代码,您会看到如果在纹理缓存中找不到它,它无论如何都会将图像添加到纹理缓存中。

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

于 2012-05-30T09:10:23.513 回答