2012-05-30 4 views
0

Я в настоящее время создание CCSprite вроде этого:Надлежащее использование CCTextureCache

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

Это спрайт фоновое изображение CCLayer, который используется наиболее часто. Является ли следующее использование CCTextureCache более эффективным?

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

ответ

3

Нет. Внутренне все методы, которые используют изображение в качестве текстуры (а не только CCSprite), добавят текстуру в CCTextureCache.

Единственная причина, по которой вы хотели бы использовать addImage напрямую, - это когда вы хотите предварительно загрузить определенные текстуры, чтобы первое появление узла, использующего эту текстуру, не вызывало отставания во время игрового процесса.

1

Прежде всего, если вы посмотрите на код spriteWithFile: метод, вы увидите, что он добавляет изображение в кэш текстур в любом случае, если не удается найти его там.

Во-вторых, вы должны знать, что если вы храните свое искусство в атласах для уменьшения использования памяти (например, атлас 2048x2048 пикселей с 20 различными изображениями), spriteWithTexture: создаст спрайт с огромным атласом (2048x2048 пикселей) ,

Смежные вопросы