Надлежащее использование CCTextureCache
Я в настоящее время создаю CCSprite
как это:
CCSprite *s = [CCSprite spriteWithFile:@"image.png"];
Этот спрайт является фоновым изображением CCLayer
это используется относительно часто. Является ли следующее использование CCTextureCache
более эффективным?
CCTexture2D *t = [[CCTextureCache sharedTextureCache] addImage:@"image.png"];
CCSprite *s = [CCSprite spriteWithTexture:t];
2 ответа
Нет. Внутренне все методы, которые используют изображение в качестве текстуры (не только CCSprite), добавят текстуру в CCTextureCache.
Единственная причина, по которой вы захотите использовать addImage напрямую, заключается в том, что вы хотите предварительно загрузить определенные текстуры, чтобы первое появление узла, использующего эту текстуру, не вызывало задержки во время игры.
Прежде всего, если вы посмотрите на код spriteWithFile: метод, вы увидите, что он все равно добавляет изображение в кеш текстуры, если не может найти его там.
Во-вторых, вы должны знать, что если вы храните свое произведение искусства в атласах для сокращения использования памяти (например, атлас 2048x2048 пикселей с 20 различными изображениями), spriteWithTexture: создаст спрайт с целой текстурой огромного атласа (2048x2048 пикселей).