我目前正在使用粒子系統進行練習,我在想如果下面的代碼是正確的方式來停止並啓動一個粒子,當一個按鈕被點擊時?這是開始和停止粒子系統的正確方式
該代碼工作正常,我觸摸開始按鈕和粒子啓動,我觸摸停止按鈕和粒子停止,但我不知道如果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;'會隱藏圖層嗎? –
不,看不到我的最新評論,看看我的最終解決方案。 –