我有一个动画CAEmitterLayer与CAEmitterCell和动画与运行良好
fireEmitter = (CAEmitterLayer*)self.layer;
fireEmitter.emitterPosition = CGPointMake(50, 50);
fireEmitter.emitterSize = CGSizeMake(10, 10);
CAEmitterCell* fire = [CAEmitterCell emitterCell];
...
[fire setName:@"fire"];
CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"emitterPosition"];
anim.path = theBezierPath.CGPath;
anim.calculationMode = kCAAnimationCubicPaced;
anim.repeatCount = HUGE_VALF;
anim.duration = 12.0;
[self.layer addAnimation:anim forKey:@"fire"];
我的贝塞尔曲线是封闭的,并形成一个“8”出四个位置点。 我timerFunction我试图让CAEmitterLayer每秒的位置。 为此,我使用
-(CGPoint)getEmitterPosition
{
return fireEmitter.emitterPosition;
}
在发射器和类
CGPoint emitterPosition = [self.ParticleEmitterView getEmitterPosition];
NSLog(@"%f / %f", emitterPosition.y, emitterPosition.y);
从定时器功能。
但是,当动画运行控制台吐出每一个电话allthough发射器运行在屏幕上的相同positio。
这是为什么,我怎么能拿动画CAEmitterLayer /电池的发射位置?