我目前正在使用粒子系统进行练习,我在想如果下面的代码是正确的方式来停止并启动一个粒子,当一个按钮被点击时?这是开始和停止粒子系统的正确方式
该代码工作正常,我触摸开始按钮和粒子启动,我触摸停止按钮和粒子停止,但我不知道如果removeFromSuperLayer
是正确的方法来使用。正如我所说,代码做了我所需要的,但我只是想确保即使在调用removeFromSuperLayer
并最终浪费资源之后,粒子也不会继续在后台运行。
- (IBAction)stopAnimation:(id)sender
{
[emitterLayer removeFromSuperlayer];
}
- (IBAction)startAnimation:(id)sender
{
[self particle];
}
-(void) particle
{
emitterLayer = [CAEmitterLayer layer];
emitterLayer.emitterPosition = CGPointMake(50 ,50);
emitterLayer.emitterZPosition = 10;
emitterLayer.emitterSize = CGSizeMake(10,10);
emitterLayer.emitterShape = kCAEmitterLayerSphere;
CAEmitterCell *emitterCell = [CAEmitterCell emitterCell];
emitterCell.scale = 0.1;
emitterCell.scaleRange = 0.2;
emitterCell.emissionRange = (CGFloat)M_PI_2;
emitterCell.lifetime = 10;
emitterCell.birthRate = 5;
emitterCell.velocity = 20;
emitterCell.velocityRange = 50;
emitterCell.yAcceleration = 0;
emitterCell.contents = (id)[[UIImage imageNamed:@"particleImage.png"] CGImage];
emitterLayer.emitterCells = [NSArray arrayWithObject:emitterCell];
[self.view.layer addSublayer:emitterLayer];
}
非常感谢
非常感谢,它比我想象的要多得多。 –
@fs_tigre:'self.emitterCell.birthRate = 0.0f;'会隐藏图层吗? –
不,看不到我的最新评论,看看我的最终解决方案。 –