2011-10-27 25 views
2

我有我想在視差背景中多次使用的精靈「磚」。 有沒有一種方法可以重複使用同一個精靈? 因爲我必須爲我的精靈設置碰撞檢測...... 如果我使用太多的變量,我認爲這沒用。 感謝您的幫助如何在cocos2D中添加相同的精靈?

+0

CCSpriteBatchNode將在同一個繪圖調用中呈現其所有子畫面精靈,但實際上是否需要在內存中顯示多次的1個對象?我不知道這是可能的。 – Bongeh

回答

9

您無法重新使用CCSprite的相同實例。但是,您可以重新使用Cocos2D爲您自動執行的紋理。

您可以使用相同的圖像文件或精靈幀創建多個精靈。例如,這將創造100個磚精靈,給每一個獨特的標籤從0到99:

for (int i = 0; i < 100; i++) 
{ 
    CCSprite* brick = [CCSprite spriteWithFile:@"brick.png"]; 
    [self addChild:brick z:0 tag:i]; 
} 

使用映像文件「brick.png」所有的精靈將使用相同的內存質感。 CCTextureCache緩存每個加載的圖像文件,以便每個CCSprite的額外內存使用量接近500字節(我使用Objective-C運行時檢查了一次)。這意味着使用相同紋理的千個精靈將使用大約500 KB加上紋理使用的內存量。

+0

CCSprite * brick; 我想將其聲明爲全局變量(在* .h文件中) 是否有可能(在上面的上下文中)? – 2012-01-30 11:36:45