2011-09-29 81 views
1

我有一個ccLayer我試圖讓它下雨。 在初始化我安排如下:CCSprite runAction和Remove

 [self schedule:@selector(throwRain) interval:0.1f]; 

這裏是代碼的其餘部分:

-(void) throwRain { 
    CCSprite *gota; 
    for (int i = 1; i <= 6; i++){ 
     gota = [CCSprite spriteWithFile:@"4_gota.png"]; 
     gota.position = ccp(arc4random() % 768, 1060); 
     gota.scale = (arc4random() % 25 + 50.0f)/100.0f; 
     gota.rotation = 35 ; 
     [self addChild:gota z:arc4random() % 5 + 7]; 

     [gota runAction:[CCSequence actions:[CCEaseRateAction actionWithAction:[CCMoveTo actionWithDuration:3.0f + (arc4random() % 200)/100.0f position:ccp(gota.position.x, 0)] rate:3] , [CCCallFunc actionWithTarget:self selector:@selector(spriteDone:)], nil]]; 
    } 
} 

-(void) spriteDone:(id)sender { 
    [self removeChild:sender cleanup:YES]; 
} 

然而,滴到達底部,然後就停在那兒,而且永遠不會被刪除。任何想法? 謝謝。

回答

1

嘗試從CCCallFunc更改爲CCCallFuncN。 'N'表示節點,並且將執行該動作的節點傳遞給選擇器。