2011-05-02 65 views
0

我正在做我的第一場比賽,到目前爲止,我唯一的問題是內存使用情況(我沒有支付開發者費用,所以我在模擬器中運行它)。到目前爲止,它已經佔用了大約23MB,從我讀過的內容來看,這是非常重要的。這是真的?首先,在我的主菜單中,我最大的問題是我的背景,它佔用了2MB以上的內存。這可以嗎?其次,我的遊戲背景也佔用2MB +。這可以嗎?第三,我有2個CCSpriteFrameCaches,一個有55個.PNG文件,另一個有12個。有55個圖像的佔用大約9MB的內存。這聽起來很正常嗎?第二個佔用大約3MB。這聽起來很正常嗎?CCSpriteFrameCache或CCSprite? - Cocos2d

55個圖像不會被添加到圖層,直到按下一個按鈕(然後佔用更多的內存大約7MB,不知道爲什麼)。然後,當按下第二個按鈕時,第一個圖像被刪除,第二個圖像被添加。然後,當第一個按鈕再次被按下時,第二個圖像被移除並且第三個圖像被添加(如此等等)。我的問題是使用CCSpriteFrameCache或CCSprite會更好嗎?或者有其他的選擇。

如果有人有更好的方式做到這一點,請讓我知道。任何幫助是極大的讚賞!

示例代碼:

-(void)buttons:(CGPoint)touchLocation { 
if (CGRectContainsPoint(leftB.boundingBox, touchLocation) && tapP == YES && paused == NO) { 
    if (count == 1) 
    { 
     isBOP = YES; 
     count = 2; 
    } else if (count == 3) 
    { 
     [bspriteSheet removeChild:_b cleanup:YES]; 
     [pspriteSheet removeChild:_p cleanup:YES]; 

     _p = [CCSprite spriteWithSpriteFrameName:@"p3.png"]; 
     [pspriteSheet addChild:_p]; 
     count = 4; 
     _p.position = ccp(240, 215); 

     _b = [CCSprite spriteWithSpriteFrameName:@"b2.png"]; 
     _b.position = ccp(240, 158); 
     [bspriteSheet addChild:_b]; 
    } 
if (CGRectContainsPoint(rightB.boundingBox, touchLocation) && tapP == YES && paused == NO) { 
    if (count == 2) 
    { 
     [self removeChild:gb cleanup:YES]; 
     [pspriteSheet removeChild:_p cleanup:YES]; 

     _p = [CCSprite spriteWithSpriteFrameName:@"p2.png"]; 
     _p.position = ccp(240, 215); 
     [pspriteSheet addChild:_p]; 

     _b = [CCSprite spriteWithSpriteFrameName:@"b1.png"]; 
     _b.position = ccp(240, 158); 
     [bspriteSheet addChild:_b]; 

     count = 3; 
    } else if (count == 4) 
    { 
     [bspriteSheet removeChild:_b cleanup:YES]; 
     [pspriteSheet removeChild:_p cleanup:YES]; 

     _p = [CCSprite spriteWithSpriteFrameName:@"p4.png"]; 
     [pspriteSheet addChild:_p]; 
     count = 5; 
     _p.position = ccp(240, 215); 

     _b = [CCSprite spriteWithSpriteFrameName:@"b3.png"]; 
     _b.position = ccp(240, 158); 
     [bspriteSheet addChild:_b]; 
    } 
+0

只是一個提示,使用pvr圖像格式的精靈不需要清晰或高分辨率,因爲他們佔用較少的內存。祝你第一場比賽好運! :) – tallen11 2011-05-02 23:40:17

+0

感謝您的信息! – Jonathan 2011-05-02 23:45:37

回答