我有ccLayer
我试图让它下雨。
在init i上安排以下内容:
[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];
}
然而,水滴落到底部并且只停留在那里,永远不会被移除。任何的想法? 感谢。
答案 0 :(得分:1)
尝试从CCCallFunc
更改为CCCallFuncN
。 'N'代表Node,并将正在执行操作的Node传递给选择器。