使用 CAEmitterLayer 围绕圆形或 CGPath 绘制粒子
Posted
技术标签:
【中文标题】使用 CAEmitterLayer 围绕圆形或 CGPath 绘制粒子【英文标题】:use CAEmitterLayer to draw particles around a circle or a CGPath 【发布时间】:2012-01-07 23:12:40 【问题描述】:我正在尝试使用 ios 5 的粒子系统(CAEmitterLayer 和 CAEmitterCell)围绕一个圆圈(或者更好的是 CGPath)绘制粒子,但我不知道该怎么做。我能做的最好的就是做一个弧(通过修改 CAEmitterCell 的 yAcceleration 属性),但我不能做一个完整的圆。当然,我可以做多个圆弧来模拟一个圆,但是“结”非常明显。另外,我不想使用蒙版,因为看起来边缘的粒子被裁剪了。任何想法如何做到这一点?
【问题讨论】:
【参考方案1】:您可以使用 CAKeyframeAnimation 为emitterPosition 设置动画:
CAKeyframeAnimation *particleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"emitterPosition"];
[particleAnimation setPath:yourPath];
[particleAnimation setDuration:1.0];
[particleAnimation setCalculationMode:kCAAnimationPaced];
[yourEmitterLayer addAnimation:particleAnimation forKey:@"yourAnimation"];
【讨论】:
您好,您如何使用 CAEmitterCell ?【参考方案2】:你想使用particleEmitter.emitterShape = kCAEmitterLayerCircle
http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CAEmitterLayer_class/Reference/Reference.html
【讨论】:
【参考方案3】:yourEmitter.emitterShape = kCAEmitterLayerCircle;
yourEmitter.emitterMode = kCAEmitterLayerOutline;
【讨论】:
以上是关于使用 CAEmitterLayer 围绕圆形或 CGPath 绘制粒子的主要内容,如果未能解决你的问题,请参考以下文章