Iphone CAEmitterCell不考虑持续时间值
我有一个发射器,我想结束后2秒,但我不能让它停止运行 我的代码如下:Iphone CAEmitterCell不考虑持续时间值,iphone,ios,caemitterlayer,caemittercell,Iphone,Ios,Caemitterlayer,Caemittercell,我有一个发射器,我想结束后2秒,但我不能让它停止运行 我的代码如下: // Emitter Layer // emitter = [CAEmitterLayer layer]; emitter.emitterSize = CGSizeMake(20, 20); emitter.renderMode = @"additive"; emitter.emitterMode = @"points"; emitter.emitterShape = @"rec
// Emitter Layer
//
emitter = [CAEmitterLayer layer];
emitter.emitterSize = CGSizeMake(20, 20);
emitter.renderMode = @"additive";
emitter.emitterMode = @"points";
emitter.emitterShape = @"rectangle";
emitter.emitterPosition = CGPointMake(310, 230);
//emitter.duration = 2; // setting duration on the emitterLayer prevents anything from firing it seems
// Emitter Cells
//
// 'New Emitter' cell configuration
newEmitter = [CAEmitterCell emitterCell];
newEmitter.scaleSpeed = 7;
newEmitter.lifetime = 2.481715;
//newEmitter.duration = 2; // I would expect this to stop the emitter after 2 seconds, but it doesn't!
newEmitter.velocity = 332.3636968085106;
newEmitter.contents = newemitterImg;
newEmitter.name = @"New Emitter";
newEmitter.scaleRange = 4.178236607142859;
newEmitter.lifetimeRange = 1.6;
newEmitter.greenRange = -2.775558e-17;
newEmitter.birthRate = 40;
newEmitter.emissionRange = -6.283185306666667;
newEmitter.scale = 0;
// Emitter Cell Chains
//
emitter.emitterCells = [NSArray arrayWithObjects:newEmitter, nil];
尽管作为iOS的一部分已经有2年了,但关于这方面的信息似乎很少 您可以使用计时器和停止发射器生成新粒子的方法来完成此操作 在现有代码的末尾添加:
[newEmitter setName:@"newEmitter"];
[NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(stopEmitter:)
userInfo:nil
repeats:NO];
然后制作一个停止发射器:方法
- (void) stopEmitter:(NSTimer*)timer
{
[emitter setValue:@0
forKeyPath:@"emitterCells.newEmitter.birthRate"];
}
您可以使用计时器和停止发射器生成新粒子的方法来完成此操作 在现有代码的末尾添加:
[newEmitter setName:@"newEmitter"];
[NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(stopEmitter:)
userInfo:nil
repeats:NO];
然后制作一个停止发射器:方法
- (void) stopEmitter:(NSTimer*)timer
{
[emitter setValue:@0
forKeyPath:@"emitterCells.newEmitter.birthRate"];
}
非常感谢你!你在这里的帮助非常有用!在CAEmitterLayer实例上设置出生率本身就解决了这个问题。也许在以后的iOS版本中有所改变?非常感谢!你在这里的帮助非常有用!在CAEmitterLayer实例上设置出生率本身就解决了这个问题。也许在以后的iOS版本中有所改变?