动画已经发出CAEmitterCell对象

时间:2015-10-28 22:30:47

标签: ios objective-c core-animation tvos caemittercell

我有一个CAEmitterCell,我用它来为我的游戏发出连续的背景。当玩家"死亡"时,我希望背景慢下来,所以我这样做了:

- (void)stopAllEmitters:(NSTimeInterval)duration
{
    for(CAEmitterLayer* layer in self.emitters)
    {
        CAEmitterCell* e = layer.emitterCells[0];

        CABasicAnimation* anim = [CABasicAnimation animationWithKeyPath:@"emitterCells.emitter.velocity"];
        anim.fromValue = @(e.velocity);
        anim.toValue = @(0.0);
        anim.duration = duration;
        anim.fillMode = kCAFillModeForwards;
        anim.removedOnCompletion = NO;
        [layer addAnimation:anim forKey:@"emitterAnim"];
    }
}

请注意,所有emitterCell都命名为@"emitter",每个层只有一个emitterCell。

这个对所有 future-spawned 发射器对象起作用,但不适用于我调用它时已经生成的

有没有办法将速度动画应用于已在屏幕上的发射器对象?

0 个答案:

没有答案