2012-05-30 37 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的代碼:方法,你會看到,它增加了圖像紋理緩存,無論如何,如果不能找到它。如果你將自己的藝術存儲在地圖集中以減少內存使用量(例如,包含20張不同圖片的地圖集2048x2048像素),spriteWithTexture:將創建具有整個巨大地圖集(2048x2048像素)紋理的精靈。