2

我正在尝试让 CAEmitterLayer 制作一种光剑动画。我想要一束光从一个点出现并停止。我的问题是我无法让动画的开始顺利进行。一旦我运行代码,它就好像已经过了几秒钟而没有任何动画。

我尽可能地剥离了代码,看看我是否能找到问题的根源,但即使是最简单的,它仍然会发生。这是我现在仍然存在问题的代码示例:

CAEmitterLayer *emitterLayer = [CAEmitterLayer layer];
emitterLayer.emitterPosition = CGPointMake(10, 10);

CAEmitterCell *emitterCell = [CAEmitterCell emitterCell];
emitterCell.contents = (id)[[UIImage imageNamed:@"LightParticle"] CGImage];

emitterCell.birthRate = 100;
emitterCell.lifetime = 10;
emitterCell.velocity = 10;

emitterLayer.emitterCells = @[emitterCell];
[self.view.layer addSublayer:emitterLayer];

我猜我一定错过了一些明显的东西,但我已经好几天没能解决这个问题了。

将birthRate 设置为0 将使光束平滑消失,但将其设置回任意数字将导致它再次出现而没有动画。

感谢您的帮助。

4

2 回答 2

17

终于在这里找到了答案: iOS 7 CAEmitterLayer spawningparticles inappropriately

这就是我所缺少的:

emitter.beginTime = CACurrentMediaTime();
于 2013-10-21T04:10:04.547 回答
0
emitterCell.birthRate = 0.1;
emitterCell.lifetime = 10;
emitterCell.velocity = 10;

出生率可能非常小,但不是 0。

然后改变秤速度

发射器Cell.scale=0.01;发射器Cell.scaleSpeed=0.1;

希望这可以给你一些想法。

于 2013-10-12T01:08:54.133 回答