2012-02-07 74 views
0

當您使用紋理在cocos上創建sprite時,將分配內存。Cocos2D iPhone - 這會節省內存嗎?

喜歡的東西:

CCTexture2D *textureProxy = [[CCTexture2D alloc] initWithImage:image]; 
CCSprite *proxy1 = [CCSprite spriteWithTexture:textureProxy]; 

我的問題是:假設我要使用相同的紋理幾個精靈,我做

CCSprite *proxy1 = [CCSprite spriteWithTexture:textureProxy]; 
CCSprite *proxy2 = [CCSprite spriteWithTexture:textureProxy]; 
CCSprite *proxy3 = [CCSprite spriteWithTexture:textureProxy]; 
CCSprite *proxy4 = [CCSprite spriteWithTexture:textureProxy]; 
CCSprite *proxy5 = [CCSprite spriteWithTexture:textureProxy]; 

我將用5倍以上的內存? (或換句話說,將紋理複製到每個代理或是精靈只是一個引用原始紋理的「空框」?

如果後者是答案,則類似精靈的內存使用率不是那巨大的,對不對?

感謝。

回答

1

精靈只保留引用textureProxy。即使你創建spriteWithFile:每個精靈,文件名被緩存在CCTextureCache

+0

謝謝,這讓我開心。 :D – SpaceDog 2012-02-07 16:12:39

1

科科斯不同的存儲器分配給紋理和變量,所以如果你繼續創新只使用相同紋理的變量不會多次疊加紋理存儲器。而CCSprite對象是自動釋放對象。

+0

感謝您的信息。我擔心我使用的內存太多了。 :d – SpaceDog 2012-02-08 15:19:15