Надлежащее использование 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 пикселей).

Другие вопросы по тегам