2014-01-21 30 views
0

在我的應用我已經使用了粒子設計製作動畫時的身體碰撞, 代碼....的Cocos2D - removeChild之不工作

-(void)collision 
{ 
for (IceCream *iceCream in [iceDict allValues]) { 
    if (CGRectIntersectsRect(iceCream.sprite.boundingBox, player.boundingBox)) { 
     if(actualType == 0) 
     { 
      [self increaseLooseCounts]; 
      [self updateLives]; 
     } 
     else{ 
      [self increaseWinCounts]; 
      [self updateLives]; 
     } 

     //DEFINING THE PARTICLE ANIMATION 

     particle = [CCParticleSystemQuad particleWithFile:@"part.plist"]; //alt plist working with rainbow.plist 
     particle.position = ccp(iceCream.sprite.boundingBox.origin.x,iceCream.sprite.boundingBox.origin.y); 
     [self addChild:particle z:2]; 
     [particle release]; 

     //CALLING SELECTOR TO END THE PARTICLE ANIMATION 
     [self performSelector:@selector(killBlast) withObject:nil afterDelay:0.3f]; 


     int icecreamKey = iceCream.sprite.tag; 
     [self removeChild:iceCream.sprite cleanup:YES]; 
     [iceDict removeObjectForKey:[NSNumber numberWithInt:icecreamKey]]; 

    } 
} 
} 


-(void)killBlast{ 
    [particle removeFromParentAndCleanup:YES]; 
} 

但只要killBlast被稱爲應用程序崩潰。 請幫忙!!

回答

0

刪除此行:

[particle release]; 

你沒有自己particle對象,所以你不需要將其釋放。你從自動發佈的方法中獲得它,然後當它作爲一個孩子被添加時,它被保留。它會被釋放,一旦它被從父母刪除

+0

它的工作:)偉大的幫助先生謝謝你這麼多 –