2011-09-29 75 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'表示节点,并且将执行该动作的节点传递给选择器。