繁体   English   中英

适当使用CCTextureCache

[英]Appropriate use of CCTextureCache

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

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

此子画面是CCLayer的背景图片,该CCLayer经常使用。 以下CCTextureCache使用效率更高吗?

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

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

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

首先,如果查看spriteWithFile:方法的代码,您将发现,即使在那里找不到图像,它仍然会将图像添加到纹理缓存中。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM